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

494
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 .

over 4 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.

over 4 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 } } } }
over 4 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.

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