web-dev-qa-db-ja.com

Mocha 6 ES6テストBabel 7、セットアップ方法?

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を使用していません。

6
miphe

プロジェクトマニュアル

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"
  }
}
 _
3
ET-CS