以下是我的gulpfile.js。其中还有更多任务,并且所有工作都很好-但最后一个任务watch却没有。
watch
我已经尝试过路径和文件的所有可能组合,还有其他尝试,但是我还是没有运气。我在这里已经阅读了很多答案,但是无法解决我的问题。我尝试使用gulp- watch和不使用gulp-watch来运行gulp.watch,尝试了几种不同的方法来设置任务,等等。
var gulp = require('gulp'); var browserify = require('browserify'); var babelify = require('babelify'); var source = require('vinyl-source-stream'); var watch = require('gulp-watch'); gulp.task('application', function() { return browserify('./public/resources/jsx/application.js') .transform(babelify, { stage: 0 }) .bundle() .on('error', function(e){ console.log(e.message); this.emit('end'); }) .pipe(source('appBundle.js')) .pipe(gulp.dest('./public/resources/jsx')); }); gulp.task('watch', function() { gulp.watch('./public/resources/jsx/project/*.js',['application']) });
有人可以提出解决方案吗?
编辑:
这是控制台输出:
michael@michael-desktop:/opt/PhpstormProjects/app_april_2015$ gulp watch [23:05:03] Using gulpfile /opt/PhpstormProjects/app_april_2015/gulpfile.js [23:05:03] Starting 'watch'... [23:05:03] Finished 'watch' after 13 ms
您应该return注意:
return
gulp.task('watch', function() { return gulp.watch('./public/resources/jsx/project/*.js',['application']) });
watch是一种async方法,因此Gulp知道发生了什么事的唯一方法是如果您返回promise,手表会这样做。
async
promise
编辑
如@JMM所述,watch不返回Promise。它返回一个EventEmitter。