【问题标题】:Gulp watch multiple foldersGulp 监视多个文件夹
【发布时间】:2015-12-30 03:29:11
【问题描述】:

在一个项目中,在开发过程中,我想

  • 使用 Babel 观察和重新编译服务器端代码(因为我想在 Parse 上使用“ES6”)
  • 使用 Browserify/Watchify 观察和重新编译客户端代码

我该怎么做?我可以编写 2 个监视任务,但我必须打开 2 个终端窗口才能查看这两个目录。是否可以在 1 个 gulp 任务中完成?喜欢做2个任务?

【问题讨论】:

  • 我添加了一个答案,但现在我有一个问题,您需要帮助编写任务还是只需要手表?

标签: javascript gulp browserify babeljs


【解决方案1】:

是的,你可以为所欲为。

gulp.task('watch', function() {
    gulp.watch(['directoryA/**/*.js', 'directoryB/js/**/*.js'], ['task']);
});

如果您想查看其他文件类型,还可以在数组中添加更多。即:'directoryA/**/*.html'

如果您希望他们像您提到的那样运行两个不同的任务,请将其更改为:

gulp.task('watch', function() {
    gulp.watch(['directoryA/**/*.js'], ['taskA']);
    gulp.watch(['directoryB/**/*.js'], ['taskB']);
});

我使用 BrowerifyBabelify 的 gulp 任务示例。

gulp.task('taskA', function() {
    return browserify('path/to/file.js')
    .transform('babelify')
    .bundle()
    .pipe(source('file.js')) // this is the output file name
    .pipe(gulp.dest('destination/directory/')); // and this is where it ends up
});

编辑

我刚刚意识到我没有说明您是需要一项还是两项任务。从技术上讲,你可以做任何一个,但最好的方法是有两个单独的任务。

【讨论】:

  • 我更喜欢 1 项任务,以便在开发过程中我只需执行 gulp watch 即可查看我需要的所有文件夹
  • 澄清一下,我说的是您的 watch 任务将调用的任务数。如果您查看我的第二个示例,它是一个 gulp 任务,它将监视两个目录并为每个目录启动不同的任务。
  • 我想我需要像你的第二个例子一样的东西,除了 1 将是一个 gulp.watch 一个应该是启动 watchify 任务的调用。以后怎么办?
  • @JiewMeng 只有当您的任务标题为“watchify”时,pastebin 才会起作用。无论如何,如果这有助于您解决问题,请投票或选择它作为正确答案。如果您有更多问题,请发表评论,我会尽力回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-06
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
相关资源
最近更新 更多