Help us understand the problem. What is going on with this article?

nuxtでjestするとbabel-coreを見つけてくれない

御託はいいから解決してくれ

babel-core@bridgeというパッケージを入れればOK

yarn add -D babel-core@bridge

何が起こっていたか

test時に vue-jest というパッケージが @babel/core ではなく、 babel-core を参照し続けている状態みたい。
下記のように、cannot find module 'babel-core' というエラーを吐き出してしまいます。

 FAIL  test/index.test.js
  ● Test suite failed to run

    Cannot find module 'babel-core'

      at _load_babelCore (node_modules/babel-jest/build/index.js:17:49)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        2.134s
Ran all test suites.
npm ERR! Test failed.  See above for more details.

Process finished with exit code 1

babel-core@bridgeって何

babel-bridge公式にはこのように書いていました。

babel-bridge
This repo holds what we're calling a "bridge" package that is meant to ease the transition for libraries that use "babel-core" as a peer dependency for Babel 6.

The issue with Babel 7's transition to scopes is that if a package depends on Babel 6, they may want to add support for Babel 7 alongside. Because Babel 7 will be released as @babel/core instead of babel-core, maintainers have no way to do that transition without making a breaking change. e.g.

babelは7系から@babel/coreという名前でリリースされたので、babel 6系に依存したパッケージたちは破壊的な変更を余儀なくされたらしい。で、babel 6系のpeerDependencyであるbabel-coreを使うライブラリの移行を楽にすべくこのパッケージが存在する、ということらしいですね。

解決にあたって

ここここを参照しました。

以下はvue-test-utilsにコントリビュートされているらしいeddyerburghさんのコメントです。

eddyerburgh commented on 17 Feb •
We have babel-core as a peerDependency, it's up to you to use either @bridge or 6 (for vue-jest <4).

ふむふむ、vue-jestが4系に上がるまではbabelの6系を使うか、@bridgeパッケージを使えってことですね。
ちなみに2019年10月の段階ではvue-jestはまだ3系が最新みたいですね。

vue-jestのgithubのreadmeには

以下のように書かれていました。

Usage with Babel 7
If you use jest < 24.0.0 and babel-jest make sure to install babel-core@bridge

npm install --save-dev babel-core@bridge

jestのバージョンも関係してるみたいですね。
jest24.0.0より下のバージョンで、babel-jestを使っている場合はbabel-core@bridgeをおとなしく入れましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした