gulp watchify 需要两次保存以包含更改
gulp watchify needs two saves to include changes
我尝试使用 watchify 有一段时间了,但我在保存方面遇到了问题。
似乎我所做的每一个更改,我都需要保存两次,以便在输出中应用更改。
如果我在任何 js 文件中添加代码,新添加的代码只会在任务运行两次时显示。
我的 mainScrpits 任务代码
var customOpts = {
entries: ['./app/app.js'],
debug: true
};
var opts = assign({}, watchify.args, customOpts);
var b = watchify(browserify(opts));
gulp.task('mainScripts', bundle);
b.on('update', bundle);
b.on('log', gutil.log);
function bundle() {
console.log('bundle');
return b.bundle()
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source('main.js'))
.pipe(buffer())
.pipe(gulpif(!condition, sourcemaps.init({
loadMaps: true
})))
.pipe(gulpif(!condition, sourcemaps.write('./')))
.pipe(gulp.dest('./dist/js/'))
.pipe(gulpif(isLocal(), connect.reload()));
}
"watch"-任务
gulp.task('watch', function() {
gulp.watch('app/**/*.js', ['mainScripts']);
});
watchify 和 gulp.watch 都在查找您的文件的更改,这会导致创建捆绑包时出现竞争条件。
您的 watch 任务应该刚开始您的 mainScripts 任务:
gulp.task('watch', function() {
gulp.start('mainScripts');
});
我尝试使用 watchify 有一段时间了,但我在保存方面遇到了问题。
似乎我所做的每一个更改,我都需要保存两次,以便在输出中应用更改。
如果我在任何 js 文件中添加代码,新添加的代码只会在任务运行两次时显示。
我的 mainScrpits 任务代码
var customOpts = {
entries: ['./app/app.js'],
debug: true
};
var opts = assign({}, watchify.args, customOpts);
var b = watchify(browserify(opts));
gulp.task('mainScripts', bundle);
b.on('update', bundle);
b.on('log', gutil.log);
function bundle() {
console.log('bundle');
return b.bundle()
.on('error', gutil.log.bind(gutil, 'Browserify Error'))
.pipe(source('main.js'))
.pipe(buffer())
.pipe(gulpif(!condition, sourcemaps.init({
loadMaps: true
})))
.pipe(gulpif(!condition, sourcemaps.write('./')))
.pipe(gulp.dest('./dist/js/'))
.pipe(gulpif(isLocal(), connect.reload()));
}
"watch"-任务
gulp.task('watch', function() {
gulp.watch('app/**/*.js', ['mainScripts']);
});
watchify 和 gulp.watch 都在查找您的文件的更改,这会导致创建捆绑包时出现竞争条件。
您的 watch 任务应该刚开始您的 mainScripts 任务:
gulp.task('watch', function() {
gulp.start('mainScripts');
});