• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

364
Vistas
Jest Typescript con el módulo ES en el error node_modules: debe usar la importación para cargar el módulo ES:

Estoy tratando de escribir una prueba de broma simple para un paquete de terceros que solo exporta un módulo ES. Es un contenedor alrededor de un servidor http .

Aquí hay un repositorio de prueba que configuré (simplemente ejecute yarn && yarn jest para reproducir): https://github.com/jamesopti/hocuspocus-testing

No importa con qué configuración experimente, sigo recibiendo este error cuando intento ejecutarlo:

 Must use import to load ES Module: /Users/j/hocuspocus-testing/node_modules/@hocuspocus/server/dist/hocuspocus-server.esm.js > 1 | import { Server, Hocuspocus } from '@hocuspocus/server' | ^ 2 | import * as request from 'supertest' 3 | 4 | describe('Server (e2e)', () => {

Cosas que ya he probado:

  • Las instrucciones de Jest sobre módulos ES: https://jestjs.io/docs/ecmascript-modules

  • En la configuración de Jest usando transformIgnorePatterns

    • transformIgnorePatterns: ['node_modules/(?!@hocuspocus/)']
  • Uso de Babel a través babel-jest

    • modificando la configuración de transformación en la configuración de Jest como '^.+\.jsx?$': 'babel-jest', '^.+\.tsx?$': 'ts-jest'

    • Se encontró con el error You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously.

    • Usar .babel.config.js en lugar de .babelrc.js

¿Alguna idea de lo que me estoy perdiendo aquí? Pensé que esto sería sencillo

[EDITAR 1] - Se tsconfig.json y un archivo src/index.ts en funcionamiento al repositorio de ejemplo .

about 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No tiene un archivo tsconfig.json que especifique module . Por lo tanto, usa el valor predeterminado, donde transpila todos sus módulos a la sintaxis CommonJS , que usa require .

Si realmente observa su dist/hocuspocus-server.esm.js , debería verlo usando require sobre la sintaxis de importación de ESM.

about 3 years ago · Santiago Trujillo Denunciar

0

Entonces, para cualquiera que todavía esté en esto, la configuración de ESM se explica en esta sección de documentación:

https://kulshekhar.github.io/ts-jest/docs/guides/esm-support

 { // [...] "jest": { "extensionsToTreatAsEsm": [".ts"], "globals": { "ts-jest": { "useESM": true } } } }
about 3 years ago · Santiago Trujillo Denunciar

0

Estaba teniendo el mismo problema con mi aplicación esbelta y las pruebas. Finalmente lo rastreé para tener un jest.config.js y un jest.config.json en mi carpeta raíz. Parece que jest no tiene una resolución de archivo de configuración automática y estaba usando una configuración predeterminada en lugar de cualquiera de mis configuraciones especificadas.

about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda