Node.js Enginesフィールド — バージョン範囲の指定
package.jsonのenginesフィールドでsemver範囲を使用してNode.jsバージョン要件を指定する方法。>=、||、LTSターゲティングをサポート。
Practical Scenarios
詳細な説明
Node.jsエンジンバージョン範囲
package.jsonのenginesフィールドでは、プロジェクトがサポートする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の設定、一貫したランタイム環境の確保。