我有以下gulp任务(最初来自this blog):
var path = {
MAIN_JSX: './myapp/app/jsx/main.js',
APP_DIR: 'myapp/app',
APP_JS: 'app.js',
};
gulp.task('watch', function() {
var watcher = watchify(browserify({
entries: [path.MAIN_JSX],
transform: [reactify],
debug: true,
cache: {}, packageCache: {}, fullPaths: true
}));
return watcher.on('update', function () {
watcher
.bundle()
.on('error', function(err) {
console.log(err.message)
this.end();
})
.pipe(source(path.APP_JS))
.pipe(gulp.dest(path.APP_DIR));
console.log('Updated on ' + (new Date().toString()));
})
.bundle()
.on('error', function(err) {
console.log(err.message)
this.end();
})
.pipe(source(path.APP_JS))
.pipe(gulp.dest(path.APP_DIR));
});
gulp.task('default', ['watch']);
该任务首次发出gulp命令;然后我第一次更新main.js
文件。之后它根本就没有运行。这里有什么问题?
答案 0 :(得分:0)
有很多关于这个问题的讨论here on Github。
虽然听起来可能会有很多事情导致这个问题,但我在Ubuntu 14.04上遵循相同的教程,对我有用的是使用Watchify的轮询功能:
var watcher = watchify(..., {poll: true});
从对Github的讨论来看,听起来这对某些人有效,但对其他人无效。