0

这几天我一直在尝试解决这个问题。当我保存它们时,我试图让 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 锯样式.less 已更改

但是没有生成新文件。在 npm update #800 之后,我试图遵循Gulp 的解决方案突然不再起作用。我已经重新安装了两次 nodejs 来尝试让它工作但没有成功。

4

1 回答 1

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 似乎确实存在问题,当文件被更改时不会触发任务。

于 2015-03-18T14:27:56.207 回答