Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

534
Views
El compilador TypeScript no puede omitir el archivo js importado

Acabo de comenzar a mecanografiar con angular2 y me encontré con el siguiente problema. Comencé con el proyecto de inicio rápido angular2 y funcionó bien, hasta que intenté importar un archivo javascript sin formato. Estoy usando la declaración de importación de la siguiente manera

 import * as myModule from './mymodule.js';

También agregué allowJs: true al archivo tsconfig.json para aceptar el archivo javascript como una importación. El siguiente error lo da el compilador:

error TS5055: No se puede escribir el archivo '.../mymodule.js' porque sobrescribiría el archivo de entrada.

Según tengo entendido, el compilador de mecanografiado no debería compilar este archivo, porque ya está en javascript, pero por alguna razón no puedo excluirlo de la compilación.

Intenté agregar el archivo a la matriz de exclude: [] en tsconfig.json, pero debido a que se importa en uno de mis archivos .ts, esto no se tiene en cuenta (al menos eso es lo que entendí de los documentos mecanografiados).

Mi pregunta es ¿cómo puedo compilar mi proyecto con ese archivo incluido? ¿Hay alguna configuración que me falta? ¿O hay algo mal con mi enfoque?

Se agradece cualquier ayuda o consejo ya que esto me está empezando a volver loco

información adicional

Estoy usando el siguiente archivo tsconfig:

 { "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "lib": [ "es2015", "dom" ], "noImplicitAny": true, "suppressImplicitAnyIndexErrors": true } }

Estoy construyendo mi proyecto ejecutando el

 npm run build

desde una consola. Que es un script en el archivo package.json que se ve así:

 "scripts": { "build": "tsc -p src/", ...

Después de las modificaciones sugeridas por @Seamus a continuación, ocurre el mismo error.

Pero

si solo ejecuto en la consola

 tsc -p src/

El error que obtengo es diferente:

error TS7016: No se pudo encontrar un archivo de declaración para el módulo 'mymodule'

Parece que encuentra el módulo, si lo hago manualmente, pero entonces la pregunta es, ¿por qué no funciona con la npm run build ? ¿Está haciendo algo diferente?

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

La opción del compilador allowJs :

Permitir la compilación de archivos JavaScript.

Para commonjs necesitará una declaración de módulo como esta:

mimodulo.d.ts

 declare module "mymodule";

Y en su fuente donde importa:

 /// <reference path="mymodule.d.ts"/> import * as myModule from 'mymodule';

Consulte "Trabajar con otras bibliotecas de JavaScript" en la documentación.

about 4 years ago · Santiago Trujillo Report

0

De acuerdo, sé que esto es antiguo, pero tuve este problema y creo que descubrí una forma de solucionarlo (posiblemente en parte debido a una actualización de Angular).

Para comenzar:

  1. Actualice su Angular a la última versión ( 5.1 ).
  2. Actualice su TypeScript a la última versión compatible ( 4.* , en el momento de la escritura, no 5.* )
  3. Probablemente necesite allowJs: true en su archivo de configuración.

Ejecute ng serve --aot o ng build --watch=auto --aot Debería ver el error anterior y no poder acceder a su sitio.

Abra uno de los archivos .ts que forman parte de su aplicación y realice un pequeño cambio (como agregar un solo espacio) y luego guarde el archivo.

¡Tu aplicación debería compilar!

(Los --watch=auto y --aot son fundamentales para esta solución alternativa, por lo que sé)

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!