package.jsonでNode.jsのバージョンを明示的に制限する方法

2021-04-25

概要

フロント環境はさまざまな依存関係があり、何も考えず最新をインストールするとこちらのモジュールが動かなくなる、といったことが多々あります。
特にNode.jsはバージョンが違えばエラーを出すことがあり、さらにはその内容もわかりづらいです。

そのようなことが起きないよう、Node.jsのバージョンを制限させる方法を紹介します。

Node.jsを13に限定したい

例えば、Node.jsを14系に限定したい時、以下のようにpackage.jsonに追加します。

"engines": {
  "node": "13.x"
}

nodeエラー文

といったように、違うバージョンでインストールしようとするとエラーを表示させることができます。

(おまけ)Npmに限定したいとき

nodeパッケージを管理するツールのnpmとyarnですが、もしnpmだけ使用させたい時、こちらもenginesに定義すれば可能です。

ただし、一つ工程がふえます。

.npmrc

.npmrcはnpmの設定ファイルみたいなものです。
ルートに作成して、以下のように記述します。

.npmrc
engine-strict=true

package.json

"engines": {
  "yarn": "Please use npm, instead of yarn."
}

yarnエラー文

yarnでインストールするとこのようにエラーを表示させることができます。

結論

package.jsonを共有したのにバージョン違いで動かないことがないよう、しっかりと制限を設けた方がよいと思います。

運営について

Natural Tearoomはシステム開発会社フロントエンドエンジニアがんちゃんが運営するメディアです。
フロントエンド技術を中心に発信しています。

· プライバシーポリシー

SNS

© 2021 天然珈琲店