gulp-watch-less不会在Windows上触发

时间:2015-03-17 17:39:44

标签: node.js gulp gulp-watch gulp-less

我一直试图解决这个问题几天了。当我保存它们的时候,我正试图编译我的较少文件,但是我正在观看的文件中的更改不会触发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,试图让它工作没有成功。

1 个答案:

答案 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似乎有一个问题,即在文件被更改时不会触发任务。