Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

492
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!