En mi proyecto de mecanografiado, necesito agregar la extensión * .js al realizar importaciones, de lo contrario, el proyecto se compilará pero fallará en tiempo de ejecución en el navegador porque no puede encontrar el archivo.
Así es como se ven mis importaciones mecanografiadas:
import {MainApp} from './MainApp.js'; window.onload = () => { var app = new MainApp(5); app.doSomething(); };
Por lo que he leído ( agregar la extensión .js en declaraciones de importación relativas durante la compilación de Typescript (módulos ES6) , por ejemplo), parece algo normal para TypeScript que no puedo hacer esto: importar {MainApp} de './MainApp.js';
Pero la cosa es que en Angular usando mecanografiado puedo hacer esto:
import {MainApp} from './MainApp';
Entonces, ¿cómo lo está haciendo Angular? ¿Hay alguna manera de replicar ese comportamiento en mi proyecto mecanografiado puro no angular?
Porque angular cli primero compila todos sus archivos fuente en menos archivos para el navegador. Todo el código de varios archivos se encuentra en un solo archivo .js. En el momento de la compilación, el compilador encuentra el archivo relacionado con MainApp y lo coloca en el archivo de salida.
Mientras que el compilador mecanografiado en su mayor parte solo elimina las partes de TS y mantiene las partes de TS. De lo contrario, no toca los archivos. Luego, el navegador en tiempo de ejecución solicita todos los archivos .js de origen.
Si no quiere preocuparse por las terminaciones de los archivos en la importación, necesitará un paquete. Hay muchos diferentes, como paquete web, paquete acumulativo, paquete y muchos más.