模块化的gulp / node.js,调用模块variables

尝试使用gulpfile.js从scripts.js调用gulp任务,并使用来自gulpconfig.js的pathvariables。 开始迷失在依赖关系中

scripts.js:

module.exports = function(gulp, plugins) { return function() { gulp.src(srcAssets) .pipe(plugins.concat('main.js')) .pipe(plugins.uglify()) .pipe(gulp.dest(dest)) }; }; 

gulpconfig.js:

 module.exports = { srcAssets : "../src/assets/js/*.js", dest : "../../build", } 

Gulpfile.js:

 var plugins = require('gulp-load-plugins')(); var config = require('./gulpconfig'); var srcAssets = config.srcAssets; var dest = config.dest; function getTask(task) { return require('./gulp-tasks/' + task)(gulp, plugins); } gulp.task('scripts', getTask('prod/scripts')); 

结果:srcAssets未定义。 我不明白,我是否也需要在scripts.js模块中声明variables? 这破坏了configuration文件的目的..

您在scripts.js函数只接收scripts.jsplugins作为其参数,并且无法访问srcAssets 。 最简单的解决scheme是发送和接受config作为一个额外的参数:

Gulpfile.js:

 function getTask(task) { return require('./gulp-tasks/' + task)(gulp, plugins, config); } 

scripts.js中:

 module.exports = function(gulp, plugins, config) { return function() { gulp.src(config.srcAssets) .pipe(plugins.concat('main.js')) .pipe(plugins.uglify()) .pipe(gulp.dest(config.dest)) }; };