我想为一个使用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
的内容时,发现了babel-polyfill的链接,其中他们解释说我不需要那个polyfill。
这将模拟完整的ES2015+环境(没有<Stage 4提案),旨在用于应用程序而不是库/工具。
要正确设置此内容,需要什么?
我没有使用webpack。