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

标签 javascript node.js module gulp

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

脚本.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);
}

脚本.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))
    };
};

关于javascript - 模块化gulp/node.js,调用模块变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32909990/

相关文章:

javascript - JQuery 菜单仅适用于主页

node.js - 使用基本身份验证重定向到另一个网站(在 Node 中)

javascript - 使用通配符比较nodeJS对象

c# - 如何防止插件执行有害代码

ios - 如何创建 cocoapod 框架并向其中添加文件?

javascript - 在较低级别冗余加载 Angular 模块?

javascript - jQuery 源代码中的 returnTrue 和 returnFalse 函数

javascript - 对于具有特定类功能的每个表行/单元格

javascript - 使用另一个字符串键 "encrypt"字符串的最简单方法?

node.js - 如何在 App Engine Nodejs Standard 上访问内存缓存