Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

712
Vistas
La importación del módulo ESM puro en el proyecto TS falla la prueba Jest con un error de importación

Intento usar el módulo de tipo de archivo que es ESM puro en un proyecto de TS, pero mi broma falla. Configuré las opciones de ESM como se indica aquí, pero aún obtengo un error de SyntaxError: Cannot use import statement outside a module .

He hecho una caja de arena aquí .

Resumen de mi código:

 import { fileTypeFromBuffer } from "file-type";

Configuración de broma:

 export default { testEnvironment: "jest-environment-node", globals: { extensionsToTreatAsEsm: [".ts"], "ts-jest": { useESM: true, }, }, transform: { "^.+\\.(ts|tsx|js|jsx)?$": "ts-jest", //"^.+\\.tsx?$": "ts-jest", }, moduleNameMapper: { "^(\\.{1,2}/.*)\\.js$": "$1", }, preset: "ts-jest", //preset: 'ts-jest/presets/default-esm' // or other ESM presets };

TSConfig:

 { "extends": "@tsconfig/node14/tsconfig.json", "compilerOptions": { "target": "ES2018", "module": "commonjs", "lib": ["es2018"], "declaration": true, "strict": true, "strictNullChecks": true, "alwaysStrict": true, //importsNotUsedAsValues // "noImplicitAny": false, "noImplicitReturns": false, "noImplicitThis": false, "noUnusedLocals": false, "noUnusedParameters": false, "noEmit": true, "noFallthroughCasesInSwitch": false, "inlineSourceMap": true, "inlineSources": true, "experimentalDecorators": true, "strictPropertyInitialization": false, // "typeRoots": ["./node_modules/@types"] "resolveJsonModule": true, "outDir": "dist", "baseUrl": ".", "skipLibCheck": true, "forceConsistentCasingInFileNames": true } }

¿Algunas ideas?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tienes que decirle a Jest que transforme esas bibliotecas empaquetadas de ESM con la opción transformIgnorePatterns .

Esta opción especifica las rutas ignoradas y su valor predeterminado es ["/node_modules/", "\\.pnp\\.[^\\\/]+$"] lo que explica por qué las bibliotecas no se transforman.

La solución más sencilla es establecer una matriz vacía:

 transformIgnorePatterns: []

Pero también podría establecer una configuración más detallada para excluir todo, excepto algunas bibliotecas en particular, como en el ejemplo de expresiones regulares de los documentos.

Además, agregue la "allowJs": true en la configuración de TypeScript.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda