启动Gulp Watch for JS并检测当前文件夹是否已更改

时间:2015-12-10 15:26:40

标签: javascript gulp gulp-watch gulp-concat gulp-livereload

我需要从gulpfile中最小化gulp命令的数量。

这是我的JS文件夹

js/
   templates/
              t-01/
              t-02/
              [...]
              t-xxx/

我的JS(带有livereload)的gulp任务

gulp.task('da-js', function() {
    gulp.src([
        'js/templates/**/*.js',
        '!js/templates/**/*.min.js'
        ])
        .pipe(concat('app.min.js'))
        .pipe(gulp.dest('js/templates'))
        .pipe(livereload());
});

此任务是全局的,目标文件夹是templates,但我想检测js文件的当前文件夹,如:

  1. 我正在/templates/t-01/
  2. 中更改js
  3. gulp.watch正在启动
  4. app.min.js仅在此文件夹t-01
  5. 中生成

    我知道目标文件夹gulp.dest不正确,但我不知道如何执行此操作。

    感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您可以使用gulp的watch方法监控包含JS文件的文件夹以进行更新,并运行一系列任务以响应某些更改。

gulp.task('watch-files', function() {
    gulp.watch('js/templates/**/*.js', ['da-js']);
}); 

这里我们正在观看模板中的所有JS文件及其所有子文件夹,并为每次更新运行文件串联任务(da-js)。现在我们正在执行相同的任务,即使您更改app.min.js,也会在templates文件夹中生成templates/t-01/some.js文件夹。

watch-files中定义了gulpfile.js任务后,您只需运行gulp watch-files命令即可​​开始监控您的文件。