2017-03-15 17 views
0

リポジトリで使用するノードのバージョンを検出する方法はありますか?プロジェクトでサポートされているノードのバージョンを確認する方法

ウェブフレームワークが急速に登場したことで、6,12、または24ヶ月以上前のプロジェクトに戻っていく必要性が増しています。 私は最後の数週間で多く、正しいノードのバージョンを検出するための私のプロセスこれをやってきたことになっています:

git clone [REPO] 
npm i 
[build] 
### if error 
rm -r node_modules 
nvm use 4, 5 or 6 
npm i 
[build] 

私は助けるが、私はここに欠けている非常に基本的なものがあることを感じることができません。 あなたの知恵をお寄せいただきありがとうございます。

答えて

0

これらが独自のreposの場合は、参照用にjsonパッケージにNodeバージョンを格納できます。

"version": "1.0.0", 
"engines": { 
    "node": "7.x" 
}, 
"description": "..." 

これで自動的に正しいバージョンが設定されることはありませんが、見た目がわかります。

+0

これは素晴らしい方法であり、dev ops tech(docker、kubernetesなど)と組み合わせて非常に便利です。 )しかし、問題は、有用な例と内部プロジェクトを含むgithub上の多くのreposは、このように指定されたノード・バージョンを持たないということです。 – coiso

0

他の回答に記載されているとおり、一部のパッケージのenginesフィールドはpackage.jsonです。 npmは、パッケージでサポートされていないNode.jsバージョンにパッケージをインストールしようとすると、ユーザーに警告します。 enginesフィールドには、次のようになります。

{ 
    "engines": { 
    "node": ">=4.0.0" 
    } 
} 

さらに詳しい情報:https://docs.npmjs.com/files/package.json#engines


はまた、多くのパッケージがTravisCIのように、自動的にパッケージをテストするために設定し、CIを持っています。これらのCI設定ファイルには、多くの場合、テストするNode.jsバージョンのリストが含まれています。一般に、CI設定の最低バージョン番号はパッケージでサポートされている最小バージョンです。

共通の設定ファイル名.travis.ymlappveyor.ymlcircle.ymlなど

例です:この設定は、パッケージには、おそらくのNode.jsのV4 +

をサポートすることを意味し

language: node_js 
node_js: 
    - "4" 
    - "5" 
    - "6" 
    - "7" 

.travis.yml

関連する問題