ES6/7で書かれたライブラリの場合は、ライブラリをdist /フォルダにコンパイルしたいです。このlibのテスト(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
_
最初はiインポートエラーを得ました.babelrcファイルを追加して解決されました。
以下は私の.babelrcファイルの内容です。
{
"presets": ["@babel/preset-env"]
}
_
私はregeneratorRuntime
を読んでいて、それは私に Babel-Polyfillについてのこのリンク 彼らが説明しているところで私はそのpolyfillを必要としません。
これにより、完全なES2015 +環境(No <ステージ4の提案)がエミュレートされ、ライブラリ/ツールではなくアプリケーションで使用されることを意図しています。
これを正しく設定するために必要なものは何ですか?
私はWebPackを使用していません。
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"
}
}
_