模块化的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.js
和plugins
作为其参数,并且无法访问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)) }; };