web-dev-qa-db-ja.com

Node v13 / Jest / ES6 — babelまたはesmのないモジュールのネイティブサポート

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モジュールをネイティブで使用できますか?

9
philipp

承認された回答で提供されているヒントに従いましたが、正常に動作するように"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"
  }
0
Juan Martín