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

498
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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