LoginSignup
22
23

More than 5 years have passed since last update.

Nodejsでモジュールバージョンが合わないときにまずやること

Last updated at Posted at 2018-11-10

nw.jsとneon-cliを使っていてバージョン違いに疲弊したのでメモ。
nodejs初心者なので、パッケージ管理ツールの使い方がおかしいかもしれません。こうした方がいいとかあれば是非教えていただきたい。

地獄のエラーメッセージ「compiled against a different Node.js version」

自分はパッケージ管理にyarnを使っていたのでハマりました。yarnでパッケージ管理をしていると、npmパッケージ系のコマンドが効かないシーンがあるのかもしれません。そこをゴッチャにすると、ハマります。

このエラーは、モジュールが別のnodejsバージョンで動作するものだと言っているようです。

実行環境

OS→OSX10.14(Mojave)
nodeバージョン管理→nodebrew
nodeグローバルパッケージ管理→npm
nodeローカルパッケージ管理→yarn

nodejs→v11.0.0
(バージョン変更したりしていますが、v10.9あたりと行き来していました)

しらみつぶしにやりましょう

1.現在のnodejsのバージョンを確認

ターミナルから
node -v

2.必要な全てのモジュールが対応しているnodejsのバージョンを確認

これは手作業で全部確認したんですが、もっとざっと見れる方法があったんでしょうか..。

必要があればnodejsのバージョン変更

インストール済みのバージョンを確認
nodebrew ls

ここに欲しいバージョンがなければインストール
nodebrew install v0.0.0←欲しいバージョン入力

バージョン適用
nodebrew use v0.0.0←適用バージョン入力

3.npmのグローバルインストールをリビルド

これは正直意味があったのかはわかりません。
npm rebuild -g

4.npmまたはyarnのローカルインストールをリビルド

node_modulesなどはそのままに、

npmの場合

npm rebuild

yarnの場合

yarn install --force

これらのコマンドでバージョンが噛み合うようにモジュールをアップデートしてくれるはずです。

5.プロジェクトのnode_modulesディレクトリを削除,モジュール再インストール

なぜか4の方法でダメだった時はこれも試します。
node_modules削除
rm -r node_modules

再インストール
package.jsonのdependencies内の、それぞれのモジュールバージョンを確認。
そしてパッケージ再インストール
npm install

終わりに

今の所はこれぐらいの対応でなんとかなりました。
これでも無理な時は、もしかしたら欲しいモジュールの必要nodeバージョンが全部違っているのかもしれません。その時はあきらめましょう!

22
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
23