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

406
Visualizações
webpack encore falla al importar enumeración desde node_modules

Estoy tratando de usar una enumeración de una biblioteca que hice en otro proyecto. La biblioteca está hecha con Vue y mecanografiado, junto con el paquete acumulativo, el proyecto está hecho con Synfony y el frente con Vue y mecanografiado también, construido con Webpack Encore.

La biblioteca es una dependencia de mi proyecto, así que intento importar la enumeración de esta manera: import { MyEnum } from 'myLibrary/src/enum/MyEnum';

Y la enumeración se ve así

 // node_modules/myLibrary/src/enum/MyEnum.ts export enum MyEnum { One = 'one', Two = 'two', Three = 'three' }

Pero cuando construí, recibí este error (con Webpack Encore de Symfony):

 ERROR Failed to compile with 1 errors 4:37:05 PM Error loading ./node_modules/myLibrary/src/enum/MyEnum.ts FIX To process TypeScript files: 1. Add Encore.enableTypeScriptLoader() to your webpack.config.js file.

Obviamente ya agregué enableTypeScriptLoader() en webpack.config.js, y no sé cómo resolver esto.

Si creo el mismo archivo de enumeración en mi proyecto y lo importo, funciona, pero tengo que mantenerlo en mi biblioteca y no quiero duplicar el código. E importo interfaces de la misma biblioteca de la misma manera, y funciona bien.

Intenté cosas que no funcionan:

  • export const enum funciona un poco, pero obtengo el TS2475: 'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query. error, y tengo que volver a declarar la enumeración en otro objeto para usarlo en mi plantilla:/
  • export declare enum pero aún obtener el Add Encore.enableTypeScriptLoader()

Alguna idea de como resolver esto?

EDITAR

Tengo otro mensaje de error en mi navegador que agrega información:

 Module parse failed: Unexpected token (4:7) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders > export enum MyEnum { | One = 'one', | Two = 'two'

También pruebo importar la misma enumeración de la misma biblioteca en un proyecto nuevo hecho con Vue Cli, y no tengo ningún error. Estoy bastante seguro de que el problema proviene de Webpack Encore.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Solución encontrada, algunos detalles en el número de este Webpack Encore: https://github.com/symfony/webpack-encore/issues/1060

Y aquí está la solución:

  • 1/ Agregue allowTsInNodeModules en las opciones de enableTypeScriptLoader :
 Encore.enableTypeScriptLoader((options) => { options.allowTsInNodeModules = true; });
  • 2/ Actualice la regla para cambiar la opción de exclude que excluye node_modules y excluye node_modules pero mis propios módulos (donde @myCompany es la carpeta en node_modules donde están mis propios módulos.
 Encore.configureLoaderRule('typescript', (rule) => { rule.exclude = /node_modules\/(?!@myCompany)/; });

Esto genera una advertencia al compilar, pero por ahora es la única forma que encontré para solucionarlo.

about 4 years ago · Juan Pablo Isaza 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