几天来我一直在尝试解决这个问题。我试图让 gulp 在保存文件时编译我的较少文件,但我正在观看的文件的更改不会触发 gulp-watch-less。我的.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所做的任何更改都不会触发新的文件更新。当我进行更改时,控制台会显示:
少锯风格.少被改变
但不会生成新文件。我试图遵循 Gulp 的解决方案,在 npm 更新 #800 之后突然不再工作。我已经重新安装了 nodejs 两次,试图让它工作但没有成功。
我设法通过使用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似乎确实存在问题,当文件被更改时不会触发任务。