复制node_modules时如何省略devDependencies?

Fka*_*Fka 6 gulp

我想只复制模块,这对于应用程序非常重要-那些位于内部dependenciespackage.json。我想省略那些在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"
    }
}
Run Code Online (Sandbox Code Playgroud)

gulpfile.js

gulp.task('copy_packages', function() {
      gulp
         .src('node_modules/**/*.*')
         .pipe(gulp.dest('../release/node_modules'));
});
Run Code Online (Sandbox Code Playgroud)

是否有任何模块或智能方法来区分哪些模块属于dependencies组,哪些属于devDependencies

Sve*_*ung 0

Node.js 允许您将require()JSON 文件作为简单的 JavaScript 对象返回。您可以使用它来仅将这些模块传递给文件中gulp.src()出现的模块:dependenciespackage.json

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'));
});
Run Code Online (Sandbox Code Playgroud)

  • 我预计依赖问题。如果“依赖项”下的模块依赖于“moduleXYZ”,则不会附加它。 (2认同)