Nodeやnpmのバージョンが異なる複数のプロジェクトを開発していると、たまに切り替え忘れたりして、ビルドが通らなかったりして焦ることがありますよね。
そんなときは実行前にNodeやnpmのバージョンを確認してしまいましょう。
#check-engines
check-enginesを使うと事前にチェックできます。
さっそくインストールしましょう。
$npm install --save-dev check-engines
インストール後のpackage.json
package.json
"devDependencies": {
"check-engines": "^1.5.0",
}
#enginesを定義
実行するまえにpackage.jsonにenginesを定義しましょう。
ここにこのプロジェクトのNodeとnpmのバージョンを記載します。
package.json
"engines": {
"node": "10.0.0",
"npm": "5.6.0"
},
#実行前のチェック
Node実行前にチェックする処理を入れます。
const checkEngines = require('check-engines');
const process = require('process');
// package.jsonのenginesのバージョンをチェック
checkEngines(err => {
if (err) {
process.exit(0);
}
});
チェックがNGだった場合はerrにエラー情報が入ってくるので、エラーの場合はNodeを終了しています。
https://qiita.com/kyosuke5_20/items/0e36c168d36eef29c23a
こちらと組み合わせて失敗時にはデスクトップ通知してみましょう。
const checkEngines = require('check-engines');
const notifier = require('node-notifier');
const process = require('process');
// package.jsonのenginesのバージョンをチェック
checkEngines(err => {
if (err) {
notifier.notify({
title: '実行エラー',
message: err.message,
});
process.exit(0);
}
});
これでバージョンチェックが完了です!