Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

543
Visualizações
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?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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.

over 4 years ago · Santiago Trujillo Relatório

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é)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda