Gulp Watch不会调用相关的gulp任务

时间:2016-11-02 05:47:11

标签: javascript gulp gulp-watch

所以我在(长期)休息后回到个人项目,然后我又回到了事物的流动中。面对我的一件事是,我的观察者并没有工作。例如,如果我调用gulp watch-for-jshint,我希望在修改JS文件时可以更改JSHint - 无论是根文件(gulp.js)还是我的客户端应用程序(./client-app) /js/controllers/register.js)。那没有发生。我可以看到watch正在启动,但是当我更改文件时它从不调用JSHint!

任何人都有任何想法出错或如何诊断?据我所知,我的语法是正确的...因为(为了测试目的)我直接调用watch-for-jshint,我应该避免通常的陷阱,从来没有真正调用我的观察者。 / p>

简化的gulp文件:

var gulp = require('gulp'),
  clean = require('gulp-clean'),
  jshint = require('gulp-jshint'),
  notify = require('gulp-notify'),
  watch = require('gulp-watch'),

gulp.task('jshint', function(){
  console.log("Running JSHint");
  return gulp.src(['*.js', 'client-app/**/*.js'], ['jshint'])
    .pipe(jshint({"moz":true}))
    .pipe(jshint.reporter('default'))
    .pipe(jshint.reporter('fail'))
    .on('error', notify.onError({ sound: "Funk" }));
});

gulp.task('watch-for-jshint', function(){
  return watch(['*.js', './client-app/**/*.js'], ['jshint']);
});

我已经截断了很多无关紧要的任务,但上面的内容应该是相关的一切。

2 个答案:

答案 0 :(得分:0)

当然,在发布后5分钟,我发现我的语法和许多问题正在使用的区别。大多数人都在使用gulp.watch,我只是按照仅使用watch的{​​{3}}页面上的语法。

不......完全确定为什么一个有效,另一个无效;奇。似乎新版本不起作用,因为它没有引用gulp-watch模块。

答案 1 :(得分:0)

如果没有必要,请删除gulp任务中的以下行。

.on('error',notify.onError({sound:“Funk”}))

这使gulp任务停止并显示错误。因此手表也停止了。

替换

返回观察(['* .js','。/ client-app /。/ *。js'],['jshint']);

gulp.watch(['*。js','。/ client-app /。/ *。js'],['jshint']);