Nuxt.jsでcore-jsのバージョンが1系だという警告が出てビルドできなくなった時の対応メモ
2021-02-18
Nuxt.jsのアプリケーションの依存パッケージのアップデートを行ったところ、以下のような警告がでてアプリケーションが動かなくなったのですが検索してもそれっぽい解決方法が見当たらずハマったのでその時の対応内容のメモです。
WARN Invalid corejs version 1! Please set "build.corejs" to either "auto", 2 or 3.
core-jsのバージョンで怒られている?
警告の内容を見ると、
- 無効なバージョンな1系のcore-jsが使われている
- core-jsのバージョンの設定をセットしろ
ということらしい。
nuxt.config.js
のビルドの設定からcore-jsのバージョンを指定
できるようになっているのでそこから設定できます。
試しに設定してみるとたしかに警告は出なくなるもののビルド時にcore-js周りでエラーが出て今回遭遇したケースでは解決できず。
どうやらcore-jsの1系が読み込まれていたらしい
yarn.lock
を確認すると警告されているだけあって1系のcore-jsがインストールされているものの2系と3系もインストールされていました。
更に調べてみると、
- 依存パッケージの依存の関係で1系、2系、3系のcore-jsがインストールされている
- yarnかnpmの仕様で
node_module
直下に1系が展開されていた
ということが分かり1系の置き場所が悪くてエラーになっているのでは?と推測。
アプリケーション自体の依存にcore-jsの2系か3系を指定すればnode_module
直下に1系が来ることは流石にないだろうと思いアプリケーションの依存についかしてみたところ無事エラーがでなくなり解決しました😀
yarnの設定でnode_module
直下の配置っぷりを調整したり、ビルドの設定で使うcore-jsのパスを指定したりもできるかもしれませんが面倒だったので今回はこれ以上調査せず。