【问题标题】:Run gulp task in chokidar.on() callback在 chokidar.on() 回调中运行 gulp 任务
【发布时间】:2018-07-14 06:01:48
【问题描述】:

任务“复制图像”在第一次 gulp 运行时复制所有图像文件。然后,任务 'Watch source files' 监视图像源文件夹,imagesWatcher.on('add) 拦截添加的文件。如何从“wathcer.on()”回调中调用“复制图像”?

请注意,驼峰式的 gulp 任务名称是不必要的限制。 我知道gulp.run 已在 gulp4 中删除,但在这里它可能非常方便。

gulp.task('Copy images', () => {
   // ...
})

gulp.task('Watch source files, () => {

    let imagesWatcher = gulp.watch('src/images/**/*.*');
    watcher.on('add', function(path, stats) {
        // How to call 'Copy images'?
    });
})

【问题讨论】:

  • 这对于函数名来说非常简单——在你不需要的 camelCase 或类似的情况下。为什么不想使用它们?
  • @Mark,因为可读性。骆驼案例适用于机器,但我希望所有任务名称都适用于人类。现代 IDE 可以自动创建 gulp 任务列表,所以出现驼峰式的情况会很不自然。你可以用驼色菜单项来想象你的软件的菜单栏吗? ...但是,我可以接受带有别名的解决方案。

标签: node.js gulp gulp-4 chokidar


【解决方案1】:

只需将您的“复制图像”任务变成一个函数(这是 gulp4 特别好的地方),所以:

function Copy_Images() {
  return gulp.src(paths.images.src)
    .pipe(newer(paths.images.dist))
    .pipe(gulp.dest(paths.images.dist));
}

function Watch_Source_Files() {
    let imagesWatcher = gulp.watch('src/images/**/*.*');
    watcher.on('add', function(path, stats) {
        // How to call 'Copy images'?
        Copy_Images();
    });
}

函数名就是这么简单。不确定在这种情况下“使用别名的解决方案”是什么意思。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-13
    • 2015-08-17
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多