【问题标题】:Gulp - Pass parameter to inner functionGulp - 将参数传递给内部函数
【发布时间】:2015-02-17 02:44:58
【问题描述】:

我有一个循环遍历数组的监视任务。数组中的字符串用于获取要监视的不同文件路径。这就是手表功能的路线。 on-function 会在这些文件中查找更改。如果有变化,将调用一个新函数,开始编译 sass 文件。

function setWatchPipe(groupName) {
  gulp
    .watch(watchStyles[groupName])
    .on('change', function(e, groupName) {
        console.log(groupName);
        return gulp.src(appFiles.styles.src + groupName)
            .pipe($.plumber({ errorHandler: function (error) {}}))
            .pipe($.rubySass({
                style: sassStyle,
                compass: true,
                noCache: true
            }))
            .pipe(isProduction ? $.combineMediaQueries({ log: true }) : _.noop())
            .pipe(isProduction ? $.minifyCss({ keepSpecialComments: 1 }) : _.noop())
            .pipe($.plumber.stop())
            .pipe(gulp.dest(paths.styles.dest))
            .pipe($.size({
                showFiles: true
            }));

    });
}

var watchArray = ['base', 'front'];

gulp.task('watch', ['build-styles'], function() {
  for(var i = 0; i < watchArray.length; i++)
    setWatchPipe(watchArray[i]);
});

我的问题是里面的参数“groupName”。监视任务对更改做出反应,但 console.log 未定义。我需要从数组中获取字符串的输出,但我不知道如何将变量传递到该位置(需要获取正确的源文件,必须写入)。

您好, 拉尔斯

【问题讨论】:

    标签: javascript parameter-passing gulp gulp-watch


    【解决方案1】:

    尝试使用function(e) 而不是function(e, groupName)。它可能正在为您的关闭设置变量groupNameundefinedchange 回调只返回我认为的一个参数。

    【讨论】:

    • Awww maaan。我试图在那里只写“groupName”,但从不写“e”。而已。谢啦! :)
    • 很棒的家伙 :) 很高兴为您提供帮助。
    猜你喜欢
    • 2018-09-26
    • 2021-09-21
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2015-10-05
    相关资源
    最近更新 更多