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

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

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 Report

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 Report

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 Report

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