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

安东宁·塞扎德(Antonin Cezard)

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

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模块中声明变量吗?这违反了配置文件的目的。

布莱恩·格拉兹

您的函数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))
    };
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章