Help us understand the problem. What is going on with this article?

プロジェクトメンバー間で使っているnodejsのバージョンを合わせる方法

More than 3 years have passed since last update.

nodejsは進化が速く最新の機能がどんどん入ってきます。
個人的にgulpfile.jsや簡単なスクリプトぐらいならリスクも少ないのでes6の機能を素で使うために、どんどんバージョンアップしていきたいです。
当然複数人で開発していると、メンバー内で使っているnodejsのバージョンを揃える必要があります。
つらつらREADMEに書いてもいいんですが、何かうまい方法がないかと考えてみました。

rubyやrbenvであれば、.ruby-versionで指定したり、Gemfileでも指定できます。
同様にnodejsの場合、package.json内のenginesプロパティでサポートするenginesを指定するのでこれで解決かと思いましたが、これはライブラリとしてインストールされる時に使われるもののようで、プロジェクト自身がnpm installした時や実行時にチェックはしてくれるものではないようです。

そこで check-enginesというのを使いたいと思います。これはpackage.jsonの内のenginesを見て現在実行しているnodejsがサポートされているものかをチェックしてくれるライブラリみたいです。cliも提供されています。以下のようなメッセージが出力されます。

[Error: Error: node version (4.0.0) does not satisfy specified range (>=5.0.0)]

これとpostinstall scriptsを組み合わせれば、npm installした時にチェックできそうです。

最終的に以下のようにすれば、npm install時に使っているnodejsのバージョンがサポートされていなければエラーメッセージが出るようになりました。

package.json
{
  "name": "LooksLikeTeenSpirit",
  "version": "1.0.0",
  "description": "...",
  "repository": "...",
  "main": "index.js",
  "engines": {
    "node": ">=4.0.0"
  },
  "scripts": {
    "postinstall": "node_modules/check-engines/bin/check-engines"
  },
  "author": "Kurt Cobein",
  "license": "ISC",
  "devDependencies": {
    "check-engines": "^1.2.0",
  }
}

npm installはまず欠かせない作業なので問題ないでしょう。
これで無事プロジェクトで使っているnodeのバージョンを合わせることができました。

でも自分が知らないだけで他に何かちゃんとした方法があるような気がするので、
もっといい方法知っていれば、教えてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした