前言
当内容发生变化时,如何让浏览器自动刷新页面呢? 当然,常规的做法是:点击刷新浏览器按钮,或者按下F5键。我们希望自动刷新,而不是每次都要按一下刷新键。无论您是前端还是后端工程师,使用它将提高您30%的工作效率。
怎么实现呢? 方法是有的,且看下文。
原理
其实现原理是,监听内容文件夹, 当检测到内容改动时,自动刷新页面, 例如 html, css 、JavaScript 等。这一切,可以借助 BrowserSync来实现。
安装步骤
- 安装 Node.js
BrowserSync是基于Node.js的, 是一个Node模块, 如果您想要快速使用它,也许您需要先安装一下 Node.js 。
- 安装 BrowserSync
如果npm在国内非常慢, 你可以考虑淘宝镜像来加速 : 淘宝 NPM 镜像
您可以选择从Node.js的包管理(NPM)库中 安装BrowserSync。打开一个终端窗口,运行以下命令:
$ npm install -g browser-sync
您告诉包管理器下载BrowserSync文件,并在全局下安装它们,您可以在所有项目(任何目录)中使用。
启动 BrowserSync
一个基本用途是,如果您只希望在对某个css
文件进行修改后会同步到浏览器里。那么您只需要运行命令行工具,进入到该项目(目录)下,并运行相应的命令:
静态网站
如果您想要监听.css
文件, 您需要使用服务器模式。 BrowserSync 将启动一个小型服务器,并提供一个URL来查看您的网站。
# --files 路径是相对于运行该命令的项目(目录)
$ browser-sync start --server --files "css/*.css"
如果您需要监听多个类型的文件,您只需要用逗号隔开。例如我们再加入一个.html
文件
# --files 路径是相对于运行该命令的项目(目录)
$ browser-sync start --server --files "css/*.css, *.html"
# 如果你的文件层级比较深,您可以考虑使用 **(表示任意目录)匹配,任意目录下任意.css 或 .html文件。
$ browser-sync start --server --files "**/*.css, **/*.html"
# 监听css文件
$ browser-sync start --server --files "*.css"
# 监听css和html文件
$ browser-sync start --server --files "*.css, *.html"
特别注意事项
- 要检测的文件,一定要放到指定的路径下。 比如
css/*.css
与*.css
所属路径不同。 - 把所有想要检测的文件内容,都放到指定的路径;
- 如果要检测 javascript 文件,需要修改如下:
监听css和html、JS文件
$ browser-sync start --server --files "*.css, *.html, *js"
动态网站
如果您已经有其他本地服务器环境比如 node.js 服务,您需要使用代理模式。 BrowserSync将通过代理URL(localhost:3000)来查看您的网站。
主机名可以是ip或域名
$ browser-sync start --proxy "主机名" "css/*.css"
小结
如果用到了webpack, 还可以通过 browser-sync plugin + webpack,达到同等的检测效果
参考书: 《 全栈开发之道:MongoDB+Express+AngularJS+Node.js 》
更多全栈技术,请关注微信公众号: “全栈工程师的早读课”,每天早8:00 准时推送技术文章。