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

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

```
2023/12/3 最新のverに更新
2020/5/24 最新のverに更新
2019/10/12 エラーを追記
2019/10/4 「There appears to be trouble with your network connection」を追加
2019/9/16更新 node.jsの画像
2019/3/8更新 node.jsの画像
2018/11/24更新
・killall node を追加
2018/11/13更新
・ltsに関する画像を最新のものに修正
2018/6/15更新
・ltsに関する画像を最新のものに修正
 ```

私[吉本興業のJavaScript芸人](https://kenjimorita.jp/aboutme/)が
npm|yarnのエラーだけのすっきりまとまっているページが見当たらなかったのですぐ知りたい方の為に書きました。以下npm|yarnでよくでるエラーです。

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

###事前確認(これで解決する場合もあります)
・package.jsonがあるディレクトリにいないで実行しているとか
・他のlocalサーバーが立ち上がっているとか(同じポート番号が別で使われているとか) `killall node`と叩いて全てのnodeのプロセスを一旦killします
・package.jsonに加えたにもかかわらずnpm installしてないとか
・キャッシュがのこっているとか(npm cache cleanしていないとか)
・一回全部node_modulesを削除してnpm installし直すとか(rm -r node_modules)
・今installしようとしているモジュールとpackage.jsonのname値が同じとか(package.jsonのname値を変えてください)
・ブランチを変えた後npm iし直していないとか(先ほどまで作業していたブランチのpackage.jsonと差分がありますか？あればnpm iし直してくださいもしくは一回node_modules削除して入れ直してください)


ok。一旦、まず試しにターミナルでこれを順番に打ってみてください。

```
1. killall node
2. ls (package.jsonが表示されていることを確認する。なければあるところまでcdで移動)
3. rm -r node_modules
4. rm package.lock.json (rm yarn.lock) package.lock.jsonかyarn.lock。どちらか存在するほうを削除。
5. npm i or yarn i
6. ローカルサーバーを立たてる or あなたのやりたかったこと
```

何をやっているかというと
1はnodeのプロセスを殺しています。どこかでlocalServerが立っている可能性を消しています
2はあなたのcurrentにpackage.jsonがあることを確認しています
3は依存関係が書かれているファイルを削除してます。これはnpm i時に自動で生成されます
3はnode_modulesが秘伝のタレになっている可能性を除去しています
4はもう一度モジュールを入れ直しています
5であなたがやりたかったコマンドを打ってください



###そもそも
ここみてください。(画像は2023/12/3現在)

![Node_js.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64377/1bf0fbe6-62fd-1f23-fd96-e95390469b35.png)


![Previous_Releases___Node_js.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64377/5521cf33-f7ee-1436-8578-0b606e1d38a9.png)

上の画像でv20が現在ActiveLTS(Long Term Support)と書いてありますね。
それぞれのEnd-of-lifeに注意してください。
機能はもちろんですが、メンテナンスを終える時期が違います

それは
https://nodejs.org/en/about/previous-releases
)で確認することができます。




何が言いたいかというと
あなたの使っているnodeバージョンがnpmでインストールしている最新のパッケージと互換がないのかもしれません。
例えばnodeは古いのにパッケージはそれをサポートしていないとか。


```node -v```
```npm -v```
で確認してみて、
さらにはエラー箇所で問題起こしているパッケージのサイトに行って、
現在お使いのnodeのバージョンでそのパッケージ使えるか根気よく調べてみてください。
大抵英語ですが、翻訳して読んでみてください。

最近私自身経験したのは
ローカル作業で使っているnodeで生成するファイルと、
デプロイ先のインスタンス内環境(サーバー)で使っているnodeのverが違うのでローカルではエラーでないのに環境でbuildするとエラーになることがありました。

・ローカルとデプロイ先のnodeのversionは同じですか？？
・自分はエラーが出ているが他の開発者のPCでも同じ手順でエラーが出ますか？(Errorが出ない同僚nodeバージョンとあなたのそれは同じですか？)
・他の開発者がpackage.jsonを更新したにも関わらずpackage.jsonやそれらのlock.jsonをpushしていないとか
・実行しているnode versionとエラーで伝えているパッケージは互換性がありますか？

nodeを環境に応じて切り替えるnvmというのもあります。
例えばこっちのプロジェクトではnode 10.xを使い、こっちでは８.xを使う、切り替えるということです。
nvm (https://github.com/creationix/nvm)

nvm install --ltsでリモートからその時のltsをインストールして使うコマンドもあります
そこら辺はドキュメントをご覧ください。

それを踏まえて、、、
よくあるError、Warnです。

**Error、Warn**

・Oops! Something went wrong! :(
・yarn installしようとしたら 「There appears to be trouble with your network connection.」
・[npm WARN unmet dependency](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-warn-unmet-dependency--unmet-peer-dependency)
・[UNMET PEER DEPENDENCY](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-warn-unmet-dependency--unmet-peer-dependency) 
・[npm WARN deprecated](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-warn-deprecated)
・[npm ERR! invalid](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-err-invalid)
・[npm WARN peerDependencies](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-warn-peerdependencies)
・[npm ERR! missing](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-err-missing)
・[npm WARN EPEERINVALID](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#epeerinvalid)
・[npm WARN engine](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-warn-engine)
・[npm WARN EPACKAGEJSON](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-warn-epackagejson)
・[npm WARN prefer global](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-warn-prefer-global)
・[```throw er; // Unhandled 'error' event Error: listen EADDRINUSE :::4000](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#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:](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm-err-network-tunneling-socket-could-not-be-established-cause7252error140770fcssl-routinesssl23_get_server_hellounknown-protocolopensslssls23_clntc766)

・[nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#nvm-is-not-compatible-with-the-npm-config-prefix-option-currently-set-to-usrlocal)
・[Refusing to install redux as a dependency of itself](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#refusing-to-install-redux-as-a-dependency-of-itself)

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

**その他**
・[急にgulpが壊れた zsh: command not found: gulp](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#zsh-command-not-found-gulp)
・[たまにpackageJSONに記述しているpackageの更新状況を見てみる](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#%E3%81%9F%E3%81%BE%E3%81%ABpackagejson%E3%81%AE%E6%9B%B4%E6%96%B0%E7%8A%B6%E6%B3%81%E3%82%92%E3%81%BF%E3%81%A6%E3%81%BF%E3%82%8B)

**Tips**
・[グローバルインストールのインストール先を調べる](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%85%88%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B)
・ [モジュールの検索パスを調べる](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%83%91%E3%82%B9%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B)
・[gulp実行したらエラー出た！](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#%E6%80%A5%E3%81%ABgulp%E3%81%8C%E5%A3%8A%E3%82%8C%E3%81%9F-zsh-command-not-found-gulp)
・[npmで管理されている最新のpackageを調べる](http://qiita.com/M-ISO/items/d693ac892549fc95c14c#npm%E3%81%A7%E7%AE%A1%E7%90%86%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E6%9C%80%E6%96%B0%E3%81%AEpackage%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B)

## There appears to be trouble with your network connection.
[ここ](https://github.com/yarnpkg/yarn/issues/4890)みてください

・[これとか](https://github.com/yarnpkg/yarn/issues/4890#issuecomment-3778674710
・[これとか](https://github.com/yarnpkg/yarn/issues/4890#issuecomment-503828147)
・[これとか](https://github.com/yarnpkg/yarn/issues/4890#issuecomment-358179301)

試して見てくださいね。

## Oops! Something went wrong! :(
**やること**

```
ESLint: 6.5.1.

No files matching the pattern "./www/testassets/common/js/detail.js" were found.
Please check for typing mistakes in the pattern.
```
package.jsonのscriptの部分にここのpatternのところの記述があるとおもいますが、
そこのパスがあっているか、存在しないディレクトリパスになっていないかかくにんしてください
ちなみに私は`www/testassets` -> `www/test/assets`に修正ました。
そんなディレクトリはなかったのです。

## npm WARN unmet dependency / UNMET PEER DEPENDENCY 
依存関係が満たされていないよといわれています。
[ここらへん](http://stackoverflow.com/questions/20764881/why-does-npm-install-say-i-have-unmet-dependencies)読んでみて、

その
「UNMET PEER DEPENDENCY」ていうのを個別にnpm iしてみてください。
で、もう一回先ほどと同じコマンド叩いてみてください
例えば
<img width="428" alt="スクリーンショット 2017-12-08 7.51.47.png" src="https://qiita-image-store.s3.amazonaws.com/0/64377/1b22cb4e-73fa-48b9-ccc9-5e0c19353378.png">

自分は npm i -D react-reduxをした際に上の写真のように出ました。
「reduxが欲しいけど、ない」と言われています。
で、npm i -D reduxをしました。
インストール後、
npm i -D react-reduxをしなおしたらそれは消えます。

もしそれでもダメなら下記

**やること**
1.node_modulesを一回全部削除 プロジェクト直下で```rm -r node_modules``` (フォルダごと削除)
2.npm cache clean
3.sudo npm cache clean (必要なら)
4. npm install


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

![スクリーンショット 2015-09-21 21.56.44.png](https://qiita-image-store.s3.amazonaws.com/0/64377/6b2c50d8-6d69-73b4-789e-f070f717f48e.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](https://qiita-image-store.s3.amazonaws.com/0/64377/3b952d19-cb88-2562-b929-96c18966a336.png)

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


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

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

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


## npm ERR! invalid:
[ここらへん](http://stackoverflow.com/questions/25696584/npm-list-giving-npm-err-invalid-output)とか[ここらへん](http://stackoverflow.com/questions/25238544/npm-err-invalid-strip-ansi0-2-2)、[ここら辺](https://github.com/npm/npm/issues/5913)

**やること**
```npm install -g npm```



## npm WARN peerDependencies

![スクリーンショット 2015-09-19 16.43.12.png](https://qiita-image-store.s3.amazonaws.com/0/64377/e4be4bc5-2a39-b2e9-f659-c2a4baaa5f8b.png)

[ここらへん](http://www.sssg.org/blogs/hiro345/archives/17499.html)
依存モジュールが自動でインストールされないことが原因みたい

なのでこの場合写真の```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
[ここらへん](https://github.com/npm/npm/issues/8871)

ライセンスないっていわれているみたいです。
 **やること**
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](https://qiita-image-store.s3.amazonaws.com/0/64377/b854a01f-192c-c804-af75-2a54ad6701ad.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](https://qiita-image-store.s3.amazonaws.com/0/64377/be60f7f1-4a46-b51f-3ac0-1166780298e4.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](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](http://kenjimorita.jp/nvm-is-not-compatible-with-the-npm-config-prefix-option-currently-set-to-usrlocal)


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

**やること**
急に壊れるわけがない。
[私のブログ](http://kenjimorita.jp/gulp-zsh-command-not-found-gulp/)を読む


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

```js

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


ncu (or npm-check-updates -u)
```

![スクリーンショット 2016-03-05 15.46.46.png](https://qiita-image-store.s3.amazonaws.com/0/64377/27043b5d-8e35-3266-a792-f0e06d20ba80.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](https://github.com/tjunnone/npm-check-updates)

```
 ncu //最新バージョンを調べる。
```
![スクリーンショット 2016-11-19 12.43.07.png](https://qiita-image-store.s3.amazonaws.com/0/64377/044bacd0-f312-0f2f-d855-036fa72cf61f.png)

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

![スクリーンショット 2016-11-19 11.44.39.png](https://qiita-image-store.s3.amazonaws.com/0/64377/3f7e4e62-2690-43f7-6f7e-a3d0535ae3eb.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:
```

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

<img width="563" alt="スクリーンショット 2016-12-29 9.23.16.png" src="https://qiita-image-store.s3.amazonaws.com/0/64377/f6092e46-afb1-624f-8521-0705eb3deec5.png">

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

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

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





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