1. Qiita
  2. 投稿
  3. npm

npmで怒られたエラー集まとめ。WARN[deprecated,unmet dependency,peerDependencies,EPEERINVALID,engine]ERR![missing,invalid],throw er; // Unhandled 'error' eventの解決方法。(2017/1/5更新)

  • 238
    いいね
  • 2
    コメント

npmで怒られたエラー集まとめ。 WARN[deprecated,unmet dependency,peerDependencies,EPEERINVALID]ERR![missing,invalid],throw er; // Unhandled 'error' event

の解決方法

npmのエラーだけのすっきりまとまっているページが見当たらなかったので忘れっぽい自分の為とすぐ知りたい方の為に書きました。以下npmでよくでるエラーです。

※もしこの記事で解決したら「いいね」ください笑。励みになります。

事前確認(これで解決する場合もあります)

・package.jsonがあるディレクトリにいないで実行しているとか
・他のlocalサーバーが立ち上がっているとか(同じポート番号が別で使われているとか)
・package.jsonに加えたにもかかわらずnpm installしてないとか
・キャッシュがのこっているとか(npm cache creanしていないとか)
・一回全部node_modulesを削除してnpm installし直すとか

Error、Warn

npm WARN unmet dependency
UNMET PEER DEPENDENCY
npm WARN deprecated
npm ERR! invalid
npm WARN peerDependencies
npm ERR! missing
npm WARN EPEERINVALID
npm WARN engine
npm WARN EPACKAGEJSON
npm WARN prefer global
```throw er; // Unhandled 'error' event Error: listen EADDRINUSE :::4000

npm ERR! network tunneling socket could not be established, cause=7252:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:766:

nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
Refusing to install redux as a dependency of itself

・Refusing to install [packageName] as a dependency of itself

その他
急にgulpが壊れた zsh: command not found: gulp
たまにpackageJSONに記述しているpackageの更新状況を見てみる

Tips
グローバルインストールのインストール先を調べる
モジュールの検索パスを調べる
gulp実行したらエラー出た!
npmで管理されている最新のpackageを調べる

npm WARN unmet dependency / UNMET PEER DEPENDENCY

依存関係が満たされていないよといわれています。
ここらへん読んでみて、

やること
1.node_modulesを一回全部削除
2.npm cache clean
3.sudo npm cache clean (必要なら)
4. npm install

npm WARN deprecated

廃止されています。依存関係に注意しましょう。
また写真のように出ることもあります。

スクリーンショット 2015-09-21 21.56.44.png

この場合今は名前変わったからそっちでインストールしてね。
CSSwhat@0.4.7: the module is now available as 'css-what'
だとしてたらCSSwhatは「css-what」になったよって

npm outdatedで自分のパッケージの依存関係がわかります(写真はローカル)

スクリーンショット 2015-09-19 15.04.59.png

これもそうですが、
npm list

npm list -g
でローカルやグローバルに入れたモジュールの依存関係が調べられます。
(量がハンパないので「ターミナルの行」もってかれます)
動かなかったり何か言われたらチェックしたほうがいいかもです。
そして大抵この後のmissingやinvalidが吐かれます。

やること
1. npm install david -g
2. david update

もしくは
npm install [名前変わったやつ]

自分が依存しているモジュールだけ最新にしてくれる
※依存モジュールの依存モジュールは最新にはしない

npm ERR! invalid:

ここらへんとかここらへんここら辺

やること
npm install -g npm

npm WARN peerDependencies

スクリーンショット 2015-09-19 16.43.12.png

ここらへん
依存モジュールが自動でインストールされないことが原因みたい

なのでこの場合写真のfrom **** willまでのモジュールを
手動でインストールするといいみたいです

※ここのエラーですが、一方ではこうもいわれています。

やること
上記のページがよく書いてあるので説明はそちらにお任せします。

npm ERR! missing:

ないよっていわれているとパッケージをインストールする
npm list -gでいわれていたら

やること

npm install -g ***@**とか
sudo npm install -g ***[半スペ]***[半スペ]***
モジュール名だけを列挙

EPEERINVALID

NPMはEPEERINVALIDに警告
〜はどれもインストールされていません。
もし

npm WARN EPEERINVALID generator-angular-fullstack@2.1.1 requires a peer of yo@>=1.2.0 but none was installed.

こういうのだとしたら
angularのそれは2.1.1でyo(yoman)は1.2.0に依存しているがインストールされてません。

やること
npm install yo@1.2.0
バージョン指定

npm WARN engine

npm自体のバージョンが古いみたいです
たとえば

hoek@2.16.2: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"3.3.3"})

こういうのだったらcurrentが0.10.33なんだけど、そのパッケージがもとめているのは0.10.40ですみたいに言ってる。言っているよね?言ってます
npm -v でしらべてみてみてね

やること
npm install -g npm でバージョンあげて、
で npm -v で上がったか確認
んで該当のパッケージ指定してnpm install [fafa] してみて同じので怒られてなかったら成功

npm WARN EPACKAGEJSON

ここらへん

ライセンスないっていわれているみたいです。
やること
package.json開いてお手隙でlicenseかいてね
ターミナルからだと
cat package.jsonで未記入を確認
vim 使えるならvim で使ッタコトない方好きなエディタでだね

npm WARN prefer global

やること
npm install -g [fafapackage]

events.js:[番号] throw er; // Unhandled 'error' event

Error: listen EADDRINUSE :::4000

さっきまで使えていたのに急にエラーっていわれている。
スクリーンショット 2016-02-22 午前11.15.55.png

たまーに上のように知らないjsがエラー投げてきてgulpがこけたりする場合がある
events.jsの行番号は環境に因る

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE 127.0.0.1:9010
    at Object.exports._errnoException (util.js:874:11)
    at exports._exceptionWithHostPort (util.js:897:20)
    at Server._listen2 (net.js:1234:14)
    at listen (net.js:1270:10)
    at net.js:1379:9
    at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:63:16)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:82:10)

Error: listen EADDRINUSE :::4000
こちらは何回もgulpが走ってlocalサーバーが何個も立ち上がっている時にも起こります。更新の度、同じポートを使って新たにサーバー立ち上げようとするから起こるみたい。(gulpタスクのブラウザreloadの見直し必要かも)もしくは気にしない

やること

ブラウザを1回全部閉じて再起動。
or
ポートが使われているのでプロセスを切る(わからなかったらターミナルも再起動)
ps aux | grep node (これで立ち上がっているプロセスを調べてください。ターミナルを複数立ち上げてませんか??)

kill [プロセスID(下で言う例えば84009です)]
スクリーンショット 2016-07-30 14.26.19.png


gulp

それでもだめなら、

npm installで更新
or
それでもダメだったら

・node_moduleをディレクトリごと削除した後
npm install

npm ERR! network tunneling socket could not be established, cause=7252:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:766:

文中にあるSSLって文字があったら疑う

やること

npm config ls -l

でnpm の設定を見る
registryのところが「https」になっていませんか??
ここの設定を変えるコマンドを打つ

npm config set registry http://registry.npmjs.org/

proxy環境下でもinstallできるようにする

もういっかいinstallしてみて!
(npm config ls -l便利)

nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"

やること
ここ見てください。私のブログで説明します。
http://kenjimorita.jp/nvm-is-not-compatible-with-the-npm-config-prefix-option-currently-set-to-usrlocal

Refusing to install redux as a dependency of itself

やること
ここ見てください。私のブログで説明します。
http://kenjimorita.jp/nvm-is-not-compatible-with-the-npm-config-prefix-option-currently-set-to-usrlocal

TIPS

急にgulpが壊れた zsh: command not found: gulp

やること
急に壊れるわけがない。
私のブログを読む

たまにpackage.JSONの更新状況をみてみる


npm install -g npm-check-updates (updateを知るプラグインの追加)


ncu (or npm-check-updates -u)

スクリーンショット 2016-03-05 15.46.46.png

もし更新していいのであれば(周りの開発の方と連携してね)

npm update

グローバルインストールのインストール先を調べる

npm root -g

※Homebrewでインストールした場合は/usr/local/lib/node_modulesにインストールされる

モジュールの検索パスを調べる

node -e "console.log(global.module.paths)"

[ '/Users/[UserName]/node_modules',
  '/Users/node_modules',
  '/node_modules' ]

//node_moduleの検索順がしめされる

npmで管理されている最新のpackageを調べる

 npm install -g npm-check-updates 

npm-check-updates

 ncu //最新バージョンを調べる。

スクリーンショット 2016-11-19 12.43.07.png

 ncu -u //package.json内のバージョンがそれに変わる

スクリーンショット 2016-11-19 11.44.39.png

npm install //再度install

Refusing to install [packageName] as a dependency of itself

npm i [packageName]をすると

Refusing to install webpack as a dependency of itself
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:

このようなエラーが出ます。

スクリーンショット 2016-12-29 9.23.16.png

これは例えば
webpackというフォルダの中でnpm init -y をして
package.jsonのnameが「webpack」となり、
その中で同じパッケージをインストールすると起こります。

わかりづらいかな、、もうちょっと詳しくいうと、
webpack/package.json
この中でwebpackをインストールすると変えていない限りpackage.jsonのnameがwebpackになり、
「Webpackをそれ自身の依存としてインストールすることを拒否する」というエラーが出ます。
package.jsonのnameと同じパッケージはインストール拒否されるということですね。

やること
package.jsonのnameをインストールするパッケージ名と被っているので違う値にする

最後に

こっちがないよ、こっちが満たされていないよって全部解決してたら日が暮れることがわかりました。

Comments Loading...