2017-03-17 23 views
0

私はNPMプロジェクトXを持っています。プロジェクト内のすべての依存関係と必要な最小のNode.js(エンジン)バージョンの明確なリストを取得したいと思います。すべてのNPM依存関係のリストを取得するnode.jsエンジンのバージョン

どうすればいいですか?

私たちが開発と生産で実行する必要がある最小限のNodejsバージョンを発見することはもちろんです。

npm ls | grep "engines" 

そのような何か、上記動作しません除いて、うまくいけば、私はそうのように、これを達成することができた、より堅牢なもの

+0

は私が何かわかりません必要な最小のNode.js(エンジン)バージョンを意味します。 AFAIKには、依存性のために必要最小限のNodeバージョンを派生または計算する方法がありません。パッケージ作成者はプロジェクトのエンジンバージョンを指定する必要があります。すべての作成者がこれを行うわけではありません。 – LINKIWI

+0

が正しいですが、engines.node *が定義されているすべてのpackage.jsonファイルについて、私は情報を収集したいと思います –

+1

NPAにはAFAIKを助けるcmdが組み込まれていません。 node_packagesディレクトリをトラバースし、すべてのpackage.jsonのjsonを解析し、エンジンの値を検索して、最小の最上位エンジンを返すようにノードスクリプトを書くことができます。 – magreenberg

答えて

0

があります:

let npm = require('npm'); 

npm.load({}, function(err, npm) { 

    if(err) throw err; 

    npm.config.set('global', false); // => we don't want to consider global deps 

    npm.commands.list([], true, function(err, pkgInfo) { 

    let enginesList = Object.keys(pkgInfo.dependencies).map(function(k){ 
     return { 
      dep: k, 
      engines: pkgInfo.dependencies[k].engines || {} 
     } 
    }); 

    enginesList.forEach(function(val){ 
     console.log(val.dep + ' => ', val.engines); 
    }); 

    }); 

}); 
関連する問題