babel 7.0.0-beta.40 mocha5.0.1の組み合わせで使ったらエラーが出た
###環境
{
"scripts": {
"test": "mocha --compilers js:babel-register"
...
},
"dependencies": {
"@babel/core": "^7.0.0-beta.40",
"@babel/runtime": "^7.0.0-beta.40"
},
"devDependencies": {
"@babel/node": "^7.0.0-beta.40",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta.40",
"@babel/plugin-transform-async-to-generator": "^7.0.0-beta.40",
"@babel/plugin-transform-runtime": "^7.0.0-beta.40",
"@babel/preset-env": "^7.0.0-beta.40",
"@babel/register": "^7.0.0-beta.40",
"babel-register": "^6.26.0",
"babel-loader": "^8.0.0-beta.0",
"chai": "^4.1.2",
"mocha": "^5.0.1",
"webpack": "^3.11.0",
"webpack-node-externals": "^1.6.0"
}
...
}
{
"plugins": [
["@babel/plugin-transform-runtime", {
"helpers": false,
"polyfill": true,
"regenerator": true,
"moduleName": "@babel/runtime"
}],
["@babel/plugin-proposal-object-rest-spread"],
["@babel/plugin-transform-async-to-generator"]
],
"presets": ["@babel/preset-env"]
}
npm test
> myproject@1.0.0 test path/to/dir
> mocha --compilers js:babel-register
/path/to/dir/myproject/node_modules/@babel/plugin-transform-runtime/lib/index.js:17
var helpers = options.helpers,
^
TypeError: Cannot read property 'helpers' of undefined
んーん動かない でも書いてあるんだよなあ
mochaの方を見ることに。。
--compilers is redundant; we've yet to encounter a real-world situation in which the solution couldn't be expressed using --require.
........
Babel: --compilers js:babel-core/register becomes --require babel-core/register
........
$ mocha --compilers coffee:coffee-script/register --recursive ./test
Then this is how you'd accomplish the same thing (** roughly means "recursive") in v4:
$ mocha --require coffee-script/register "test/**/*.js"
^ 適当に抜粋してるので悪しからず。。
mocha - compilers deprecation
--compilers
は冗長だからやめて--require
でregister
君を指定してあげろとそれでbabel
の方は--require babel-core/register
だぞと、
babelのベージと擦り合わせてmocha --require babel-register
にしたが、変わらずエラー
まあ根本的な解決になるとは思ってなかったから想定内。
普通に他のbabelのライブラリ同様 @babel/register
を指定してみたらできました。。
結論
$ node_modules/.bin/mocha --require @babel/register
ほとんどbabel7のものを使っていたけど、mochaのbabel-register
の部分も変えなきゃいけなかった、、
まあそりゃバージョン合わせようねってことだね