esm
またはbabel
なしでJestを使用してES6モジュールをテストすることは可能ですか? node v13
は、ネイティブでes6をサポートしています。
//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
バベルにトランスパイラーを追加すると機能しますが、es6モジュールをネイティブで使用できますか?
承認された回答で提供されているヒントに従いましたが、正常に動作するように"type": "module"
にプロパティpackage.json
を追加しました。これは私がやったことです:
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"
}