运行 Mocha 6 ES6 测试用Babel 7,怎么设置?
Running Mocha 6 ES6 tests with Babel 7, how to set up?
对于用 ES6/7 编写的库,我想将库编译(到 ES5)到 dist/ 文件夹。我还想 运行 这个库的测试(写在 ES6/7 中)。
我的开发依赖如下所示 (package.json):
"devDependencies": {
"@babel/cli": "^7.4.4",
"@babel/core": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"@babel/register": "^7.4.4",
"chai": "^4.2.0",
"mocha": "^6.1.4",
"sinon": "^7.3.2"
},
我的构建和测试脚本如下所示 (package.json):
"scripts": {
"test": "mocha --require @babel/register",
"build": "babel src -d dist --presets=@babel/preset-env"
},
运行 npm run build
效果很好。 dist/ 文件夹中填充了转译后的文件。
运行 npm run test
似乎不起作用 - 这是我的问题。
> mocha --require @babel/register
/Users/dro/Repos/lib/node_modules/yargs/yargs.js:1163
else throw err
^
ReferenceError: regeneratorRuntime is not defined
最初我遇到导入错误,通过添加 .babelrc 文件解决了这个问题。
下面是我的 .babelrc 文件内容。
{
"presets": ["@babel/preset-env"]
}
我正在阅读有关 regeneratorRuntime
的内容,这让我想到 this link about babel-polyfill 他们解释说我不需要那个 polyfill。
This will emulate a full ES2015+ environment (no < Stage 4 proposals) and is intended to be used in an application rather than a library/tool.
正确设置需要什么?
我没有使用 webpack。
使用 Mocha 和 Babel 7 在 ES6 中进行测试。看这里:https://dev.to/bnorbertjs/my-nodejs-setup-mocha--chai-babel7-es6-43ei or http://jamesknelson.com/testing-in-es6-with-mocha-and-babel-6/
npm install --save @babel/runtime
npm install --save-dev @babel/plugin-transform-runtime
然后,在 .babelrc 中添加:
{
"presets": ["@babel/preset-env"],
"plugins": [
["@babel/transform-runtime"]
]
}
npm install --save-dev babel-register
在您的 package.json 文件中进行以下更改:
{
"scripts": {
"test": "mocha --require babel-register"
}
}
某些功能需要 polyfill:
npm install --save-dev babel-polyfill
{
"scripts": {
"test": "mocha --require babel-polyfill --require babel-register"
}
}
对于用 ES6/7 编写的库,我想将库编译(到 ES5)到 dist/ 文件夹。我还想 运行 这个库的测试(写在 ES6/7 中)。
我的开发依赖如下所示 (package.json):
"devDependencies": {
"@babel/cli": "^7.4.4",
"@babel/core": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"@babel/register": "^7.4.4",
"chai": "^4.2.0",
"mocha": "^6.1.4",
"sinon": "^7.3.2"
},
我的构建和测试脚本如下所示 (package.json):
"scripts": {
"test": "mocha --require @babel/register",
"build": "babel src -d dist --presets=@babel/preset-env"
},
运行 npm run build
效果很好。 dist/ 文件夹中填充了转译后的文件。
运行 npm run test
似乎不起作用 - 这是我的问题。
> mocha --require @babel/register
/Users/dro/Repos/lib/node_modules/yargs/yargs.js:1163
else throw err
^
ReferenceError: regeneratorRuntime is not defined
最初我遇到导入错误,通过添加 .babelrc 文件解决了这个问题。
下面是我的 .babelrc 文件内容。
{
"presets": ["@babel/preset-env"]
}
我正在阅读有关 regeneratorRuntime
的内容,这让我想到 this link about babel-polyfill 他们解释说我不需要那个 polyfill。
This will emulate a full ES2015+ environment (no < Stage 4 proposals) and is intended to be used in an application rather than a library/tool.
正确设置需要什么?
我没有使用 webpack。
使用 Mocha 和 Babel 7 在 ES6 中进行测试。看这里:https://dev.to/bnorbertjs/my-nodejs-setup-mocha--chai-babel7-es6-43ei or http://jamesknelson.com/testing-in-es6-with-mocha-and-babel-6/
npm install --save @babel/runtime
npm install --save-dev @babel/plugin-transform-runtime
然后,在 .babelrc 中添加:
{
"presets": ["@babel/preset-env"],
"plugins": [
["@babel/transform-runtime"]
]
}
npm install --save-dev babel-register
在您的 package.json 文件中进行以下更改:
{
"scripts": {
"test": "mocha --require babel-register"
}
}
某些功能需要 polyfill:
npm install --save-dev babel-polyfill
{
"scripts": {
"test": "mocha --require babel-polyfill --require babel-register"
}
}