package.json で必要な Node.js のバージョンを指定するにはどうすればよいですか? 質問する

package.json で必要な Node.js のバージョンを指定するにはどうすればよいですか? 質問する

packages.jsonNode バージョン 12 以上を必要とする Node.js プロジェクトがあります。インストーラーが自動的にチェックして、アップグレードが必要かどうかをユーザーに通知するように、ファイルでこれを指定する方法はありますか?

ベストアンサー1

enginesフィールドを設定し、いずれかのバージョンまたは両方のバージョンのpackage.json要件を設定できます。nodenpm

  "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 バージョンに互換性がない場合にインストール中にエラーが発生します。

おすすめ記事