NPMのインストール方法の依存関係が変更されたときは確信が持てません。グランツとNPM、すべてのプロダクション依存関係をパッケージ化
package.json
node_modules/
abc/
node_modules/
xyz/
some-dev-dep/
は私のノードをパッケージ化する場合:過去に
は、私は私のproject.json
に、私は順番に「XYZ」に依存するであろう「ABC」への依存性を、持っていた場合、npm install
のようなものになるだろうことを覚えておいてくださいAWS Lambdaが使用するプロジェクトであれば、そのnode_modules
構造体(そこにあった開発者の依存関係は少なくなりました)を含める必要があります。私は私のパッケージングのためにうなり声を使用しますので、私は(私のgruntfile.jsの一部を抽出する)私は、このジップにすべての生産の依存関係を得るのを助けるために、この便利な事を書いた:
function getDependencies(pkg) {
return Object.keys(pkg.dependencies)
.map(function(val) { return val + '/**'; });
}
var config = {
compress: {
prod: {
options: {
archive: 'public/lambda.zip'
},
files: [
{ src: 'index.js', dest: '/' },
{ expand: true, cwd: 'node_modules/', src: getDependencies(pkg), dest: '/node_modules' }
]
}
}
};
これが働くだろう、私の依存関係の依存関係があったためネストされた。
これは変更されました(NPMの古いバージョンを使用していて、最近更新したときにはわかりません)。
今、私は順番に「XYZ」に依存して「ABC」に依存している場合、私は取得する:あなたが見ることができるように、唯一の生産の依存関係を取得する私の方法だけでは動作しません
node_modules/
abc/
xyz/
some-dev-dep/
。
gruntジョブ内で、プロダクション依存関係の一覧(サブ依存関係と共に)だけを簡単に取得できますか?
再帰関数を使用して依存関係をスキャンし、project.json
のファイルをチェックし、サブ依存関係などを検索することができます。このアプローチは、多くのプロジェクトで共通のシナリオである可能性があります。
使用NVMあなたの依存関係をインストールするときは、NPM V2を使用できるように。そうすれば、node_modulesディレクトリ用の古い入れ子構造が得られます。 – idbehold