Header Ads Widget

Ticker

6/recent/ticker-posts

Declaraciones de importación sensibles a mayúsculas y minúsculas en TypeScript

 Me encontré con un problema de compilación de TypeScript complicado con una aplicación Angular que se compilaría con éxito en una máquina con Windows 10 pero no se pudo compilar en una máquina Linux con un error de "No se puede encontrar el módulo". La causa del problema terminó reduciéndose a un solo carácter sensible a mayúsculas y minúsculas, "X" en lugar de "x".

Cuando encontré el error por primera vez, comencé con lo básico y comparé mis entornos Linux y Windows:

  • Confirmado que el código fuente es idéntico en ambas máquinas
  • Confirmado que las versiones de Node y NPM son idénticas
  • Confirmado que el problema ocurre incluso con la compilación más básica al eliminar los pasos de compilación de mi script de NPM

Por supuesto, en lugar de mirar lo obvio, mi mente comienza a divagar hacia causas más complejas. ¿Hay algún problema con la caché de NPM? Lo forzaré a limpiarlo. No, eso no lo hizo. Quizás si habilito la salida de depuración, puedo obtener información adicional sobre el problema. No, nada útil aquí.

Después de un tiempo, eché un vistazo más de cerca a la declaración de importación:

1
import { Observable } from 'rxjs/RX'; .

El "RX" no se veía bien, pero seguramente la compilación no estaba fallando debido a la distinción entre mayúsculas y minúsculas. Intenté cambiarlo de todos modos. ¡Bote!

Resulta que las declaraciones de importación no distinguen entre mayúsculas y minúsculas en Mac y Windows, pero distinguen entre mayúsculas y minúsculas en Linux. Existe una forceConsistentCasingInFileNamesopción del compilador tsconfig.json que puede ayudar a detectar este tipo de problemas en el momento de la compilación. En mi caso, esta opción no tuvo ningún efecto en la compilación, sin embargo, esto podría deberse a que la aplicación todavía usa TypeScript 2.4. Parece haber algunas correcciones relacionadas con esta opción del compilador en TypeScript 2.7.2.

Si este problema también le ha molestado , puede considerar agregar sus comentarios a este problema de sugerencia abierta 21736 en el repositorio de GitHub de TypeScript.

Publicado en Web Code Geeks con permiso de Brian De Sousa, socio de nuestro programa WCG . Vea el artículo original aquí: Declaraciones de importación sensibles a mayúsculas y minúsculas en TypeScript

Las opiniones expresadas por los colaboradores de Web Code Geeks son suyas.

Publicar un comentario

0 Comentarios