gulpfile.js如下
var gulp = require('gulp'),
jade = require('gulp-jade'),
plumber = require('gulp-plumber'),
path = require('path');
gulp.task('jade', function() {
return gulp.src('./**/*.jade')
.pipe(jade())
.pipe(gulp.dest('./'));
});
gulp.task('watch', function() {
gulp.watch('./**/*.jade', function(e) {
var p = e.path.replace(__dirname, '')
.replace(/\/[^\/]+?\.jade$/, '/');
console.log(e.type + ':' + p);
gulp.src(e.path)
.pipe(plumber(
function(e) {
console.log(e.toString());
}
))
.pipe(jade())
.pipe(gulp.dest('.' + p));
});
});
gulp.task('default', ['jade']);
已经存在的jade文件能正常编译,
但新建的jade文件修改保存后都不会触发编译,
需要中断gulp重新启动任务才可以。
这是为什么呢?
gulp.task('watch', function() {
gulp.watch('**/*.jade', ['jade']);
});
去掉 ./ 就可以了
gulp.task('watch', function() {
gulp.watch('./**/*.jade', ['jade']);
});
gulp.task('default', ['jade','watch']);
'./**/*.jade'
用这个匹配路径会出现这种情况,
如果用'**/*.jade'
或指明路径就解决了