杏z学習帳

Swift、Unityなどを中心に節操なく手を出してますまる

npm install やったらエラー出てできんかったっていう話(2018/12/31)

[npm]npm install やったらエラー出てできんかったっていう話

ざっくりまとめ。

です。

環境

問題

Firebase Hostingを使おうと思いドキュメントを読んでいたのですが、
なにはともあれ、とりあえず firebase-tools をいれろとあったので

$ npm install -g firebase-tools

でインストールしようとしたところ、 すごくたくさんの warning が出ながら進んでいって (node_module/.staging/なんちゃら というのが開けないというのがたくさん)
最終的にエラーが出て終わってしまい、インストールが出来なかったのです。

npm ERR! path /private/tmp/npm-5957-61b5da95/unpack-cf87652f/node_modules/run-queue/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/private/tmp/npm-5957-61b5da95/unpack-cf87652f/node_modules/run-queue/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

...firebase側の問題?🤔

原因

ググってみてると以下のページの問題が同じ問題っぽいです。

勝手に Firebase 側の問題かと思っていたけれど、
どうやら npm 側?の問題なのか...あるいは何かかわってモジュール側で対応する必要があるのかもしれない
なんにせよ最新の v6.5.0 だとエラーがでてしまってできない。
(npm のバージョンだけじゃなくて他に環境的要因がありそうだけれど)

対策

さきのページに書いてあるとおり..

npm のバージョンをダウングレードするです

自分でやった感じだと書かれてあるとおり一つ前のバージョンで大丈夫でした。

ちょっとした罠(?)

しょうがない、ダウングレードするぞ!っていうことで、

$ npm install -g npm@6.4.1

と叩きました。。
当たり前ですが、失敗します。 install -g が出来ないっていってるんだから当然なんですけど😇

と、いうことで、直接フォルダを消したりして入れ直しました。

/usr/local/lib/node_modules/ 配下に npm っていうのがいるので、これと
ここから対象のバージョンを落としてきて差し替えるだけです。
これで無事に(?もっとちゃんとした方法がありそうだけれど)6.4.1 にすることができて、 firebase-tools も入れることが出来ました!

ということで、似たような現状がでていて、npm のバージョンが 6.5.0 の方は参考にしてみてください〜!