Modules ECMAScript
Jest ships with experimental support for ECMAScript Modules (ESM).
The implementation may have bugs and lack features. For the latest status check out the issue and the label on the issue tracker.
Also note that the APIs Jest uses to implement ESM support are still considered experimental by Node (as of version 18.8.0
).
Une fois les avertissements levés, voici comment activer le support ESM dans vos tests.
-
Ensure you either disable code transforms by passing
transform: {}
or otherwise configure your transformer to emit ESM rather than the default CommonJS (CJS). -
Execute
node
with--experimental-vm-modules
, e.g.node --experimental-vm-modules node_modules/jest/bin/jest.js
orNODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules" npx jest
etc.Sous Windows, vous pouvez utiliser
cross-env
pour pouvoir définir des variables d'environnement.Si vous utilisez Yarn, vous pouvez utiliser
yarn node --experimental-vm-modules $(yarn bin jest)
. Cette commande fonctionnera également si vous utilisez Yarn Plug'n'Play.If your codebase includes ESM imports from
*.wasm
files, you do not need to pass--experimental-wasm-modules
tonode
. Current implementation of WebAssembly imports in Jest relies on experimental VM modules, however, this may change in the future. -
Au-delà, nous essayons de suivre la logique de
node
pour activer le « mode ESM » (comme regardertype
dans les fichierspackage.json
ou.mjs
), consultez leurs docs pour plus de détails. -
Si vous souhaitez traiter d'autres extensions de fichiers (comme
.jsx
ou.ts
) en tant que ESM, veuillez utiliser l'optionextensionsToTreatAsEsm
.