我正在使用浏览器与Angular SPA同步。服务网站如下所示:
gulp.task('serve', function() {
browserSync.init(null, {
server: {
baseDir: './',
middleware: [historyApiFallback()]
}
});
});
这很好。使用historyApiFallback
(npm模块)意味着,当浏览器继续执行时,只要转到新的URL路径,浏览器同步就不会异常index.html
。
我的问题是观看文件。我已经试过了:
gulp.task('watch', function() {
watch('./src/scss/**/*.scss', function() {
runSequence('build-css', browserSync.reload);
});
});
监视任务确实起作用,因为该build-css
任务可以正常触发。然后控制台记录Reloading Browsers...
并挂起。浏览器永远不会获得CSS注入或重新加载。我在这里做错了什么?
请注意,我gulp-watch
不是故意使用本地gulp监视程序。
我建议您使用lite-server。这是一个围绕BrowserSync的简单的自定义包装程序,可轻松提供SPA服务(您甚至不必配置历史记录api)。
您可以通过简单地在的scripts
对象中添加一个条目package.json
并运行以下命令来使用它:npm run dev
。
"scripts": { "dev": "lite-server" },
该模块将自动监视您的文件更改并保持同步。因此它将与您的gulp一起使用,因为它将在build-css
任务执行后更新浏览器(因为输出文件将更改)。
我目前将其与angular 1,angular 2和vue.js一起使用,并且可以正常使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句