LoginSignup
181
101

More than 3 years have passed since last update.

package.jsonに"engines"を設定すると「このバージョンのNode.jsでしか動かない」を表明できる

Last updated at Posted at 2020-03-09

特定のバージョンのNode.jsでしか動かしてほしくないパッケージがある場合、package.jsonのenginesフィールドに、Node.jsのバージョンを明記しておくと、yarn installnpm installしたときに警告を表示できるようになる。

  • 実行環境のバージョンを固定したいときに便利。

例: Node.js 12だけに限定したい場合

例えば、Node.js 12で実行してほしい場合、次のようにenginesフィールドをpackage.jsonに追加する:

package.json
{
  "name": "my-module",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "engines": {
    "node": "12.x"
  }
}

この設定で、Node.js 13環境下でyarn installすると、エラーを起こすことができる:

Hyper.png

NPMの場合は、--engine-strictオプションが必要

npm installで同様の警告を起こすためには、--engine-strictオプションをもたせる必要がある。

Hyper.png

毎回指定するのは面倒なので、.npmrcに設定しておくといい:

~/.npmrc
engine-strict=true

最後までお読みくださりありがとうございました。Twitterでは、Qiitaに書かない技術ネタなどもツイートしているので、よかったらフォローお願いします:relieved:Twitter@suin

181
101
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
181
101