Node v13 / Jest / ES6"/>
Node v13 / Jest / ES6
是否可以在没有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
添加babel的Transpiler后,它可以工作,但是es6模块也可以在本地使用吗?
回答如下:尚未记录,但是根据this issue,您必须执行3个简单的步骤来实现该目标(编写此答案时>]:
请确保不要通过在Jest配置文件中设置import
来转换transform: {}
语句
- 使用
- 使用
jest-environment-node
或jest-environment-jsdom-sixteen
运行测试。 - 所以您的笑话配置文件应至少包含以下内容:
node@^12.16.0 || >=13.2.0
标志运行--experimental-vm-modules
export default {
testEnvironment: 'jest-environment-node',
transform: {}
...
};
并设置--experimental-vm-modules
标志,您将必须从package.json
运行Jest,如下所示(
我希望将来会有所改变):
"scripts": {
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
}
更多推荐
Node v13 / Jest / ES6
发布评论