packages.json
Node バージョン 12 以上を必要とする Node.js プロジェクトがあります。インストーラーが自動的にチェックして、アップグレードが必要かどうかをユーザーに通知するように、ファイルでこれを指定する方法はありますか?
ベストアンサー1
engines
フィールドを設定し、いずれかのバージョンまたは両方のバージョンのpackage.json
要件を設定できます。node
npm
"engines" : {
"npm" : ">=8.0.0 <9.0.0",
"node" : ">=16.0.0 <17.0.0"
}
.npmrc
これを npm 経由で強制するには、ファイルを作成し (リポジトリにコミットし)、engine-strict
オプションを に設定する必要がありますtrue
。これにより、必要なエンジン バージョンが一致しない場合、などの npm コマンドがnpm install
失敗します。
# .npmrc
engine-strict=true
npm config set engine-strict true
このファイルがなければ、すべての開発者がローカルワークスペースで実行してこのオプションをオンにする必要があります。
元の回答
あなたのコードはそれより低いバージョンでは絶対に動作しないと言っているので、おそらく「engineStrict」フラグも必要になるでしょう:
{ "engineStrict" : true }
package.jsonファイルのドキュメントは以下にあります。npmjsサイト
アップデート
engineStrict
は非推奨になったため、警告のみが表示されます。ユーザーがnpm config set engine-strict true
これを実行する必要がある場合は、ユーザーが実行する必要があります。
アップデート2
ベンが以下で指摘しているように、.npmrc
プロジェクトのルート (package.json ファイルと同じレベル) にテキストを含むファイルを作成するengine-strict=true
と、Node バージョンに互換性がない場合にインストール中にエラーが発生します。