質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Jest

Jestは、JavaScriptのテストフレームワークです。設定が不要で、高速且つ安全にテストを開始できます。コードカバレッジを生成できる他、テストスコープ外のオブジェクトを容易にモック化できるなど、豊富な機能によりテストの導入を簡単にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

4359閲覧

Vue3 + jest でCannot find module 'babel-preset-env'

Hayato1201

総合スコア231

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Jest

Jestは、JavaScriptのテストフレームワークです。設定が不要で、高速且つ安全にテストを開始できます。コードカバレッジを生成できる他、テストスコープ外のオブジェクトを容易にモック化できるなど、豊富な機能によりテストの導入を簡単にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/08/24 08:08

こちらのサイトなどを参考にjestをプロジェクトにインストールして実行しようとしています。

しかしここでCannot find module 'babel-preset-env'というエラーが出ています。
詳細は下記になります。

FAIL tests/unit/example.spec.js ● Test suite failed to run Cannot find module 'babel-preset-env' Require stack: - /puroject_name/node_modules/@babel/core/lib/config/files/plugins.js - /puroject_name/node_modules/@babel/core/lib/config/files/index.js - /puroject_name/node_modules/@babel/core/lib/index.js - /puroject_name/node_modules/babel-jest/build/index.js - /puroject_name/node_modules/@jest/transform/build/ScriptTransformer.js - /puroject_name/node_modules/@jest/transform/build/index.js - /puroject_name/node_modules/jest-runtime/build/index.js - /puroject_name/node_modules/@jest/core/build/cli/index.js - /puroject_name/node_modules/@jest/core/build/jest.js - /puroject_name/node_modules/jest-cli/build/cli/index.js - /puroject_name/node_modules/jest-cli/bin/jest.js - Did you mean "@babel/env"?

調べてみると同じようなエラーでbabel-preset-envやbabel-core@bridgeのインストールが必要だというような情報は出てきましたがそれらは既にインストールしています。

yarn list --depth=0 | grep babel-preset ├─ @vue/babel-preset-app@4.5.9 ├─ @vue/babel-preset-jsx@1.2.4 ├─ babel-preset-jest@24.9.0
yarn list --depth=0 | grep babel-core ├─ babel-core@7.0.0-bridge.0

またbabel.config.jsは下記のようになっています。

javascript

1module.exports = { 2 presets: [ 3 '@vue/cli-plugin-babel/preset' 4 ], 5 env: { 6 "test": { 7 "presets": ["env", "stage-2"] 8 }, 9 "production": { 10 "plugins": ["transform-remove-console"] 11 } 12 } 13} 14

なぜbabel-preset-envが無いと言われてしまうのでしょうか。。。

この辺り何かきっかけだけでもいいのでご存知の方いたら教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

上記のサイトを見て試してみました。

npx babel-upgradeをターミナルで叩いた後、
@babel/plugin-proposal-function-sent@babel/plugin-proposal-throw-expressionsをインストールして、
babel.config.jsを以下のように変更したらどうでしょうか。

javascript

1// babel.config.js 2module.exports = { 3 presets: ["@vue/cli-plugin-babel/preset"], 4 env: { 5 "test": { 6 "presets": ["@babel/preset-env"], 7 "plugins": [ 8 // Stage 2 9 ["@babel/plugin-proposal-decorators", { "legacy": true }], 10 "@babel/plugin-proposal-function-sent", 11 "@babel/plugin-proposal-export-namespace-from", 12 "@babel/plugin-proposal-numeric-separator", 13 "@babel/plugin-proposal-throw-expressions", 14 ] 15 }, 16 "production": { 17 "plugins": ["transform-remove-console"] 18 } 19} 20};

説明
Babelのアップデートで名前がbabel-preset-envから@babel/preset-envに、
babel-preset-stage-2から@babel/preset-stage-2に変わりました。
その後、@babel/preset-stage-2は無くなるなど、変更が大規模になりました。
なので公式がnpx babel-upgradeというコマンドで自動でアップグレードしてくれるコマンドを追加しました。

参考
https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets

投稿2021/08/24 09:30

meko

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hayato1201

2021/08/24 10:14

まさにこの通りでできました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問