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

当たり前なんですけど、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で逃げました。
軽くIssueとか探してみたけど、特に見当たりませんでした。
この辺とかが一番近そうだけど、ちょっと違う。
Issueあげてもいいかもだけど、違反してるのが悪いし、どうすればいいんだろう

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

けどユーザーが期待する動作としてはnpm iと等価であるべきだと思わなくもない
このスクラップは2023/12/07にクローズされました