1. ホーム
  2. node.js

[解決済み] package.jsonに必要なNode.jsのバージョンを指定するにはどうすればよいですか?

2022-03-20 20:06:17

質問

Node.jsのプロジェクトで、Nodeのバージョン12以上を必要とするものがあります。これを packages.json そうすれば、インストーラは自動的にチェックし、アップグレードが必要な場合はユーザーに通知するようになりますか?

解決方法は?

を設定することができます。 engines フィールドを package.json のどちらか一方に要件を設定し node または npm のバージョン、またはその両方が必要です。

  "engines" : { 
    "npm" : ">=7.0.0",
    "node" : ">=16.0.0"
  }

これをnpmで実行するには .npmrc ファイルを作成し (そしてそれをリポジトリにコミットし) engines-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

以下のbenさんのご指摘の通り .npmrc ファイルをプロジェクトのルート (package.json ファイルと同じレベル) に作成し、その中で engine-strict=true は、Nodeのバージョンと互換性がない場合、インストール時に強制的にエラーにします。