LoginSignup
24
20

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-03-08

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のバージョンを合わせることができました。

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

24
20
2

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
24
20