1. ホーム
  2. node.js

[解決済み] npm install --save` で、package.json に厳密なバージョンを追加する。

2023-03-10 19:15:09

質問

を実行すると npm install --save somepackage を実行すると、通常、package.jsonにこのようなものが追加されます。

"dependencies": {
    "somepackage": "^2.1.0"
}

バージョンの前にキャレット(^)が付くので、後で npm install を実行すると、代わりにバージョン 2.3.0 がインストールされるかもしれないことを意味します。これは、かなり明白な理由で望ましくないことがあります。 npm shrinkwrap は便利ですが、実際には問題を解決していません。

そこで、いくつか質問があります。

  1. パッケージのインストール時に、package.json で特定のバージョンに設定するよう指定することは可能でしょうか(バージョン番号の前にキャレットをつけない)?
  2. npm にパッケージを公開するとき、他の開発者があなたのパッケージをインストールするときに、バージョンの前にキャレットを含めるというデフォルトを防ぐ方法はありますか?

どのように解決するのですか?

正確なバージョンをデフォルトで指定するには、npmの設定を save-exact :

npm config set save-exact true

でチルダを付けてprepend版を指定することもできます。 save-prefix .

また、マイナーバージョンやパッチバージョンへのアップデートをユーザーに強制することはできませんが、NPMでは を使います。 を使います。これはパッケージを公開するための推奨方法です。