❔
Node.js 18 バージョン 決め方
package.jsonのengines.nodeを決めるベストプラクティスに悩んだので「あたり」をつけることにしました。
Node.jsにはnpmがついてくるので、これにあわせることにしました。
現行のnpm v9では
npm is now compatible with the following semver range for node: ^14.17.0 || ^16.13.0 || >=18.0.0
なのでNode.js 14.17.0以上か、16.13.0以上か、18.0.0以上(20.0.0含む)をサポートしているようです。
数ヶ月後に公開されるであろうnpm v10では
npm now supports node ^18.17.0 || >=20.5.0
なのでNode.js 18.17.0以上か、20.5.0以上をサポートしているようです。
とりあえずNode.js 18.17.0あたり[1]を使っていき、OpenSSLの関係で古いランタイムしか動かない環境ではNode.js 14.17.0あたりのAPIやES2021とES2022の機能が使えるんだな~といった感じでやっていくことにします。
Node.js 14.17.0とNode.js 18.17.0のどちらもES2020の機能をほぼ完全にサポート[2]しており、Node.js 18.17.0ではES2023までの機能もサポートしているみたいなので、とてもスッキリしました。
Discussion