模块化gulp / node.js,调用模块变量

时间:2015-10-02 14:53:38

标签: javascript node.js module gulp

尝试使用gulpfile.js从scripts.js调用gulp任务,使用gulpconfig.js中的路径变量。开始迷失在依赖中

scripts.js:

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

gulpconfig.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'));

Gulpfile.js:

<div class="wrapper">      
  <blockquote>
    <p>Quote text</p>
  </blockquote>      
</div>

结果:未定义srcAssets。我不明白,我是否还需要在scripts.js模块中声明变量?这违背了配置文件的目的..

1 个答案:

答案 0 :(得分:1)

scripts.js中的您的功能仅接收gulpplugins作为参数,并且无法访问srcAssets。最简单的解决方案是发送和接受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))
    };
};