LoginSignup
3
0

More than 5 years have passed since last update.

check-node-versionでengineStrictの代わりにNode.jsのバージョン指定を厳格にする

Last updated at Posted at 2018-03-10

Node.jsを使用したアプリケーションを開発していると、開発環境によってはNode.jsやnpmのバージョンが明確に固定されている必要があるケースがあります。BundlerなどではRubyのバージョンをGemfileで固定できますが、Node.jsではそれに相当する engineStrictnpm v3 で削除されてしまったため、プロジェクトに応じてなんらかの工夫が必要になります。

check-node-versionを使う

check-node-versionというnpmは、実行時の環境のNode.jsやnpmのバージョンをチェックできます。

以下を実行すると >=6.0.0 <7.0.0 のバージョンでない場合にエラーを出します。

$ check-node-version --node 6
node: 8.2.1
Error: Wanted node version 6 (>=6.0.0 <7.0.0)
To install node, run `nvm install 6` or see https://nodejs.org/

以下はNode.jsバージョンの範囲指定の例です。 8.9.0 以降であることを期待しています。

$ check-node-version --node '>= 8.9.0'

同様にしてnpmのバージョンや、yarnもチェックできます

# Node.jsとnpmのバージョンチェック
$ check-node-version --node 4 --npm 2.14

# yarnのバージョンチェック
$ check-node-version --yarn 0.17.1

script実行との併用

実用的な例として、以下のようにコマンドの実行前に check-node-version によるバージョンチェックを行って、Node.jsのバージョン差異によって問題が起きるの事前に防ぐことができます。

{
  "name": "my-package",
  "devDependencies": {
    "check-node-version": "^1.0.0"
  },
  "scripts": {
    "test": "check-node-version --node '>= 4.2.3' && node my-tests.js"
  }
}
3
0
0

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
3
0