at backyard

Color my life with the chaos of trouble.

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なりでこちらをインストールすることで解決した。

github.com

問題が起きたときの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"
  }
}