gulp-watch,gulp-watch-less不要开火

sak*_*_to 5 gulp gulp-less gulp-watch

按照记录在案的例子后,我无法通过gulp-watchgulp-watch-less来解决问题.我最初的问题是lazypipe(这里没有显示),但在我看来,我在使用插件的方式上做错了.这是我愚蠢的代码仍然无法正常工作.

请注意,我尝试使用普通的gulp-watch,它表现出完全相同的问题:它不会在更改时触发后续管道.如果出现问题,我会在这里附上信息.

这是我的gulpfile.

var debug = require ( 'gulp-debug' );
var gulp = require ( 'gulp' );
var less = require ( 'gulp-less' );
var watchLess = require ( 'gulp-watch-less' ); 

gulp.task ( 'dev-watch', function () {
  // main.less just imports child less files
  gulp.src ( './app/styles/less/main.less' )
    .pipe ( watchLess ( './app/styles/less/main.less' ) )
    .pipe ( debug () );
    .pipe ( less () )
    .pipe ( gulp.dest ( './app/styles' ) )
  ;
});
Run Code Online (Sandbox Code Playgroud)

当我启动任务时,它会执行并完美地生成预期的文件.我看到调试输出流信息也很好.

当我更改文件时,我看到watchLess正在接受更改:

 [10:49:54] LESS saw child.less was changed
 [10:49:54] LESS saw child.less was changed
 [10:49:54] LESS saw main.less was changed:by:import
 [10:49:54] LESS saw main.less was changed:by:import
Run Code Online (Sandbox Code Playgroud)

但是,较少的任务不会执行.它似乎没有发出任何东西,因为调试不会触发.

这是相关的package.json信息:

"devDependencies": {
  "gulp": "^3.8.7",
  "gulp-less": "^1.3.6",
  "gulp-watch": "^1.2.0",
  "gulp-watch-less": "^0.2.1"
}
Run Code Online (Sandbox Code Playgroud)

zhe*_*aus 1

您的代码仅在管道中运行观察程序,但不告诉接下来要做什么。

工作示例应如下所示:

var
  gulp = require('gulp'),
  debug = require ('gulp-debug'),
  less = require ( 'gulp-less'),
  watchLess = require('gulp-watch-less');

gulp.task('dev-watch', function () {
  watchLess('./app/styles/less/main.less')
    .pipe (debug ())
    .pipe(less())
    .pipe(gulp.dest('./app/styles'))
});
Run Code Online (Sandbox Code Playgroud)

但是,您也可以仅使用 gulp-watch 或 gulp (gulp.watch) 来完成相同的操作。