Asp.net

在 Visual Studio 中保存一些 javascript 文件後自動執行 gulp 任務

  • January 3, 2016

我的 asp.net 項目中有一個文件夾,其中包含一些 javascript 文件。就在建構項目之前,它們被縮小並使用 gulp 複製到“wwwroot”文件夾。它工作得很好,但是當我對任何 javascript 文件進行一些更改時,我必須重新啟動整個項目(以執行與建構相關的任務)或從“Task Runner Explorer”手動執行任務。

這需要一些時間,而且很煩人。一旦我將任何javascript文件保存在此文件夾中,是否可以通過某種方式執行這些任務?

你應該使用gulp.watch. 我剛剛將一些建構腳本從 Grunt 遷移到 Gulp,並希望提供相同的功能。

只需在 Gulpfile 中添加一個監視任務:

gulp.task('watch', function() {
   gulp.watch('/path/to/your/css/**/*.css', ['minifyCss']);
});

當您執行此任務時,任務完成後 gulp 不會退出。相反,當文件更改時,第二個參數中指定的任務將執行。如果您不想在文件更改時縮小所有 CSS 文件,gulp-cached包將派上用場。它過濾自上次任務執行以來未修改的文件(在單個 Gulp 執行會話中,而不是在 Gulp 執行之間)。只需gulp.src在任務中呼叫之後添加它,它就會過濾修改過的文件。

var cached = require('gulp-cached'),
   cssnano = require('gulp-cssnano');

gulp.task('minifyCss', function() {
   return gulp.src('/path/to/your/css/**/*.css')
       .pipe(cached('cssFiles'))
       .pipe(cssnano()) // or whatever plugin you use for minification
       .pipe(gulp.dest('./dist/'));
}

我確實嘗試從 VS Task Runner 執行類似於此任務的任務,但它不喜歡我的 Gulpfile 中使用的 ES6 功能,所以我不知道它是否可以正常執行連續執行的任務。但是,它可以從命令行按預期工作。

引用自:https://stackoverflow.com/questions/34575561