babel7を使用したとき、jestのテストがTypeError: Cannot read property 'loose' of undefinedでコケたので、その対応をメモ
babel7を使ってプラグインを試しに書いてみようとした際、jestのテストがTypeError: Cannot read property 'loose' of undefined
でコケたので、そのときの対応と原因を自分への備忘録としてメモする。
結論
最初に結論から書くと、babel-core@7.0.0-bridge.0
を入れていなかったことが原因のため、npm
なりyarn
なりでこちらをインストールすることで解決した。
問題が起きたときのpackage.json
元々のpackage.json
が下記。
{ /* 省略 */ "dependencies": { "@babel/cli": "^7.0.0-beta.36", "@babel/core": "^7.0.0-beta.36", "@babel/preset-env": "^7.0.0-beta.36", "babel-jest": "^22.0.4", "babel-plugin-tester": "^5.0.0", "jest": "^22.0.4" } }
実行時のログ
実行時のログがこんな感じ。
$ jest FAIL src/index.test.js ● Test suite failed to run TypeError: Cannot read property 'loose' of undefined (While processing preset: "/Users/{{ username }}/babel-plugin-sample/node_modules/@babel/preset-env/lib/index.js")
対応策
babel-core@7.0.0-bridge.0
を入れる
yarn add babel-core@7.0.0-bridge.0
package.jsonがこういう形となる。
{ /* 省略 */ "dependencies": { "@babel/cli": "^7.0.0-beta.36", "@babel/core": "^7.0.0-beta.36", "@babel/preset-env": "^7.0.0-beta.36", "babel-core": "7.0.0-bridge.0", "babel-jest": "^22.0.4", "babel-plugin-tester": "^5.0.0", "jest": "^22.0.4" } }