请问怎样实现文件修改时,自动自动打包,执行其它任务?
来源:9-4 如何打包发布-3
斜杠男人
2017-04-16
var gulp = require('gulp');
var rev = require('gulp-rev');
var revReplace = require('gulp-rev-replace');
var useref = require('gulp-useref');
var filter = require('gulp-filter');
var uglify = require('gulp-uglify');
var csso = require('gulp-csso');
gulp.task("default", function() {
var jsFilter = filter("**/*.js", { restore: true });
var cssFilter = filter("**/*.css", { restore: true });
var indexHtmlFilter = filter(['**/*', '!**/index.html'], { restore: true });
return gulp.src("test/index.html")
.pipe(useref()) // Concatenate with gulp-useref
.pipe(jsFilter)
.pipe(uglify()) // Minify any javascript sources
.pipe(jsFilter.restore)
.pipe(cssFilter)
.pipe(csso()) // Minify any CSS sources
.pipe(cssFilter.restore)
.pipe(indexHtmlFilter)
.pipe(rev()) // Rename the concatenated files (but not index.html)
.pipe(indexHtmlFilter.restore)
.pipe(revReplace()) // Substitute in new filenames
.pipe(gulp.dest('dist'));
});
//监听文件的改变,自动执行任务,例如修改了CSS代码或是JS代码,不用手动打包,他会自动去打包或者自动执行一些其他的任务;
var watch = require('gulp-watch');
gulp.task('stream', function () {
// Endless stream mode
return watch('css/*.css', { ignoreInitial: false })
.pipe(gulp.dest('dist'));
});
gulp.task('callback', function () {
// Callback mode, useful if any plugin in the pipeline depends on the `end`/`flush` event
return watch('css/*.css', function () {
gulp.src('css/*.css')
.pipe(gulp.dest('dist'));
});
});
1.执行命令:gulp stream callback,显示如下:
PS E:\Program\Nodejs> gulp stream callback
[00:20:43] Using gulpfile E:\Program\Nodejs\gulpfile.js
[00:20:43] Starting 'stream'...
[00:20:43] Starting 'callback'...
2.更改相应目录下的css文件,dist目录没有变化。
问题:请问怎样实现文件修改时,自动自动打包,执行其它任务?
1回答
-
传说中的小白龙
2017-04-20
watch貌似是内置在gulp中的。通过gulp.watch(file,task)或者gulp.watch(file,callback)来监听实现监听文件变化后执行的任务或者回调函数。
在这里嘛,就可以写成
//设置gulp'dev'任务 gulp.task('dev',function(){ //该任务目的监视css下所有css文件,文件发生变动执行'dest'任务 gulp.watch('css/*.css',['dest']); }) gulp.task('dest',function(){ //得到css文件夹下所有css文件 return gulp.src('css/*.css') //将得到文件输出到'dest'文件夹 .pipe(gulp.dest('dest')) })
对于gilp-watch插件不熟悉,不过看起来应该没有原生的这么好懂,我推荐使用gulp.watch来监听文件变动。
00
相似问题