23
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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バージョンが全部違っているのかもしれません。その時はあきらめましょう!

23
24
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
23
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?