我一直试图解决这个问题几天了。当我保存它们的时候,我正试图编译我的较少文件,但是我正在观看的文件中的更改不会触发gulp-watch-less。我的gulpfile.js是:
var gulp = require('gulp');
var watchLess = require('gulp-watch-less');
var less = require('gulp-less');
gulp.task('default', function () {
return gulp.src('less/style.less')
.pipe(watchLess('less/style.less'))
.pipe(less())
.pipe(gulp.dest('css'));
});
/*
gulp.task('watch', function() {
// Watch less files
gulp.watch('less/style.less', ['less']);
});
gulp.task('less', function() {
return gulp.src('src/scss/style.scss')
.pipe(less())
.pipe(gulp.dest('css'));
});
gulp.task('default', ['watch']);
*/
当我最初运行gulp时会生成一个新的css文件,但之后我对style.less所做的任何更改都不会触发新的文件更新。当我进行更改时,控制台会显示:
LESS看到style.less被改变了
但是没有生成新文件。我试图在Gulp suddenly not working anymore after npm update #800处遵循解决方案。我已经两次重新安装了nodejs,试图让它工作没有成功。
答案 0 :(得分:3)
我设法通过使用gulp-watch代替gulp-watch-less来解决这个问题。我的新gulpfile.js是:
var gulp = require('gulp');
//var watchLess = require('gulp-watch-less');
var watch = require('gulp-watch');
var less = require('gulp-less');
/*
gulp.task('default', function () {
return gulp.src('less/style.less')
.pipe(watchLess('less/style.less'))
.pipe(less())
.pipe(gulp.dest('css'));
});
*/
gulp.task('watch', function() {
// Watch less files
watch('less/style.less', function() {
gulp.start('less');
});
});
gulp.task('less', function() {
return gulp.src('less/style.less')
.pipe(less())
.pipe(gulp.dest('css'));
});
gulp.task('default', ['watch']);
在Windows上使用gulp-watch-less似乎有一个问题,即在文件被更改时不会触发任务。