全栈Web开发者我爱编程全栈的我

当内容发生变化时,如何通过 BrowserSync 让浏览器自动

2018-02-21  本文已影响33人  全栈开发之道

前言

当内容发生变化时,如何让浏览器自动刷新页面呢? 当然,常规的做法是:点击刷新浏览器按钮,或者按下F5键。我们希望自动刷新,而不是每次都要按一下刷新键。无论您是前端还是后端工程师,使用它将提高您30%的工作效率。

怎么实现呢? 方法是有的,且看下文。

原理

其实现原理是,监听内容文件夹, 当检测到内容改动时,自动刷新页面, 例如 html, css 、JavaScript 等。这一切,可以借助 BrowserSync来实现。

安装步骤

  1. 安装 Node.js

BrowserSync是基于Node.js的, 是一个Node模块, 如果您想要快速使用它,也许您需要先安装一下 Node.js

  1. 安装 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"

特别注意事项

  1. 要检测的文件,一定要放到指定的路径下。 比如 css/*.css*.css 所属路径不同。
  2. 把所有想要检测的文件内容,都放到指定的路径;
  3. 如果要检测 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 准时推送技术文章。

上一篇 下一篇

猜你喜欢

热点阅读