Closed3

npm iとpnpm iでコマンドが違うということは、結果も違うということです

serinuntiusserinuntius

当たり前なんですけど、npm iとpnpm iは等価ではありません。

例えばpnpm iが失敗するケースでも、npm iならば成功するということはあります。

例えば以下のようなケースに遭遇しました。

pnpm i
 ERR_PNPM_BAD_PACKAGE_JSON  Failed to prepare git-hosted
package fetched from "git@github.com:example/repo.git": 
/Users/username/Library/pnpm/store/v3/tmp/_tmp_00000_000000000000000000000000/package.json: 
Invalid version: "0.5.0.1"

はい、セマンティックバージョンの仕様違反です。pnpmでは厳密に処理するようで、違反があるとエラーを吐いてinstallに失敗してしまいます。

今回は依存パッケージの依存パッケージに仕様違反があり、簡単に直せないためnpm iで逃げました。

https://github.com/pnpm/pnpm/issues?q=is%3Aissue+is%3Aopen+Invalid+Version

軽くIssueとか探してみたけど、特に見当たりませんでした。

この辺とかが一番近そうだけど、ちょっと違う。
https://github.com/pnpm/pnpm/issues/6267

Issueあげてもいいかもだけど、違反してるのが悪いし、どうすればいいんだろう

serinuntiusserinuntius

GPT曰く、pnpmにIssue上げるのも1つだけど、違反してる方にIssue建てたらって言われた。確かにすぎる

serinuntiusserinuntius

けどユーザーが期待する動作としてはnpm iと等価であるべきだと思わなくもない

このスクラップは2023/12/07にクローズされました