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

508
Vistas
Node v13/Jest/ES6: soporte nativo para módulos sin babel o esm

¿Es posible probar módulos ES6 con Jest sin esm o babel ? Dado node v13 es compatible con es6 de forma nativa, he intentado:

 //package.json { … "type": "module" … } //__tests__/a.js import Foo from '../src/Foo.js'; $ npx jest Jest encountered an unexpected token … Details: /home/node/xxx/__tests__/a.js:1 import Foo from '../src/Foo.js'; ^^^^^^ SyntaxError: Cannot use import statement outside a module

Cuando a Babel se le agrega un transpiler, funciona, pero ¿los módulos es6 también se pueden usar de forma nativa?

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

0

Sí, es posible desde jest@25.4.0 . A partir de esta versión, hay soporte nativo de esm, por lo que ya no tendrás que transpilar tu código con babel.

Todavía no está documentado, pero de acuerdo con este problema , debe realizar 3 pasos sencillos para lograrlo ( al momento de escribir esta respuesta ):

  • Asegúrese de no transformar las declaraciones de import configurando transform: {} en su archivo de configuración de broma
  • Ejecutar node@^12.16.0 || >=13.2.0 con --experimental-vm-modules
  • Ejecute su prueba con jest-environment-node o jest-environment-jsdom-sixteen .

Entonces, su archivo de configuración de broma debe contener al menos esto:

 export default { testEnvironment: 'jest-environment-node', transform: {} ... };

Y para establecer --experimental-vm-modules , deberá ejecutar Jest desde package.json de la siguiente manera ( espero que esto cambie en el futuro ):

 "scripts": { "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js" }

Espero que esta respuesta te haya sido útil.

over 4 years ago · Santiago Trujillo Denunciar

0

Seguí los consejos proporcionados en la respuesta aceptada, pero agregué la propiedad "type": "module" en mi package.json para que la broma funcione correctamente. Esto es lo que hice:

En package.json :

 "devDependencies": { "jest": "^26.1.0", "jest-environment-jsdom-sixteen": "^1.0.3", "jest-environment-node": "^26.1.0" }, "scripts": { "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js" }, "type": "module", "jest": { "transform": {}, "testEnvironment": "jest-environment-jsdom-sixteen" }
over 4 years ago · Santiago Trujillo Denunciar

0

Además de la respuesta de @Radovan Kuka, aquí se explica cómo ejecutar Jest con módulos ES, usando npx :

 "test:monitoring": "npx --node-arg=--experimental-vm-modules jest -f monitoring.test.js --detectOpenHandles",

El beneficio es que no es necesario proporcionar la ruta absoluta de node_modules .

over 4 years ago · Santiago Trujillo Denunciar

0

Tenga en cuenta que esto aún es experimental, pero hemos documentado cómo probarlo, por lo que es de esperar que haya menos confusión.

https://jestjs.io/docs/en/ecmascript-modules

Los pasos en https://stackoverflow.com/a/61653104/1850276 son correctos

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