刚刚从 Gulp 3.9.1
迁移到 Gulp 4
,当我运行 gulp
时一切都工作正常并且它编译一切正常我可以很好地启动 watch
命令,这样它看起来就好像它正在监视更改,每当发生更改时,它似乎无法检测到它。
这是我的观看
任务:
gulp.task('watch', gulp.series('browser-sync', function() {
gulp.watch(['scss/**/*.scss'], gulp.series('css-minify'));
gulp.watch(['js/dev/**/*.js'], gulp.series('js-watch'));
}));
浏览器同步
任务:
gulp.task('browser-sync', function() {
browserSync.init({
open: 'external',
proxy: "mysite.local",
host: 'mysite.local',
// port: 5000,
browser: "chrome",
});
});
Gulp 4 中是否还需要进行其他更改,但我在这里遗漏了?
最佳答案
好吧,看来在 Gulp 4 中它需要 stream, promise, event emitter, child process or observable to be returned from a function or task .
所以一旦我改变了:
gulp.task('browser-sync', function() {
browserSync.init({
open: 'external',
proxy: "mysite.local",
host: 'mysite.local',
// port: 5000,
browser: "chrome",
});
});
至:
gulp.task('browser-sync', function(done) {
browserSync.init({
open: 'external',
proxy: "mysite.local",
host: 'mysite.local',
// port: 5000,
browser: "chrome",
});
done();
});
...一切又恢复正常了。
请注意添加传递给匿名函数的参数,然后在函数末尾调用 - 如链接文章中所述。
关于Gulp 'watch' 使用 BrowserSync 迁移到 Gulp 4 后未拾取更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955842/