Node.js Enginesフィールド — バージョン範囲の指定

package.jsonのenginesフィールドでsemver範囲を使用してNode.jsバージョン要件を指定する方法。>=、||、LTSターゲティングをサポート。

Practical Scenarios

詳細な説明

Node.jsエンジンバージョン範囲

package.jsonenginesフィールドでは、プロジェクトがサポートするNode.jsバージョンを指定できます。パッケージマネージャーは間違ったバージョンが使用された場合に警告またはエラーを出すことができます。

基本構文

{
  "engines": {
    "node": ">=18.0.0"
  }
}

よくあるパターン

要件 範囲 説明
Node 18以上 >=18.0.0 最小バージョンのみ
Node 18または20 ^18.0.0 || ^20.0.0 LTSバージョンのみ
Node 18-20 >=18.0.0 <21.0.0 境界付き範囲

強制

デフォルトでは、npmはエンジンの不一致について警告のみです。エラーにするには:

# .npmrcに
engine-strict=true

CI/CDの考慮事項

エンジン範囲はCIテストマトリックスと一致すべきです。Node 18と20でテストしている場合、enginesフィールドはそれを反映すべきです。

ユースケース

チームやCI/CD全体でNode.jsバージョン要件を強制するためのpackage.jsonの設定、一貫したランタイム環境の確保。

試してみる — Semver Calculator

フルツールを開く