2016-03-25 4 views
4

package.jsonにあるdependenciesの中にあるアプリケーション用に重要なモジュールだけをコピーしたいと思います。 devDependenciesのものは省略したいと思います。node_modulesをコピーするときにdevDependenciesを省略する方法は?

package.json

{    
    "dependencies": { 
     "express": "^4.13.4", 
     "log4js": "^0.6.33"    
    }, 
    "devDependencies": { 
     "gulp": "^3.9.1", 
     "gulp-rename": "^1.2.2", 
     "gulp-typescript": "^2.12.1", 
     "typings": "^0.7.9", 
     "yargs": "^4.3.2" 
    } 
} 

gulpfile.js

gulp.task('copy_packages', function() { 
     gulp 
     .src('node_modules/**/*.*') 
     .pipe(gulp.dest('../release/node_modules')); 
}); 

任意のモジュールまたはdevDependenciesdependenciesグループに属しているどのモジュールを区別するためのスマートな方法はありますか?

+0

:あなたはdependenciesの下に表示されgulp.src()にこれらのモジュールは、あなたのpackage.jsonファイルを渡すだけにそれを使用することができます同じように。 – alalonde

答えて

1

Node.jsを使用すると、require() JSONファイルを簡単なJavaScriptオブジェクトとして返すことができます。あなたはおそらく、あなたが依存関係を引っ張っに興味があるなら、NPM `周りのスクリプトいくつかのソリューションが--production`インストールすることになるでしょう

var gulp = require('gulp'); 
var packageJson = require('./package.json'); 

gulp.task('copy_packages', function() { 
    var modules = Object.keys(packageJson.dependencies); 
    var moduleFiles = modules.map(function(module) { 
    return 'node_modules/' + module + '/**/*.*'; 
    }); 
    return gulp.src(moduleFiles, { base: 'node_modules' }) 
    .pipe(gulp.dest('../release/node_modules')); 
}); 
+1

私は依存関係の問題が予想されます。 'dependencies'の下のmodulが 'moduleXYZ'に依存している場合、それは添付されません。 – Fka

関連する問題