之前写移动端页面,需要真机调试的时候我一般有三种方式:
1.对于本地纯静态页面,本地启动tomcat,然后把代码拷贝进去。然后在移动端访问页面调试。
2.对于已经部署到服务器的页面,如果要修改局部效果的话,一般使用fiddler抓包工具。
3.还有就是直接在本地运行整个工程。
简单介绍
以上三种方法都不能实时显示修改效果,必须手动刷新,一直想找个能像pc端调试页面那样,方便调试手机端的工具。然后就看到了Browsersync,安装和使用都很方便。
下面借用官网的介绍:
Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。您可以想象一下:“假设您的桌子上有pc、ipad、iphone、android等设备,同时打开了您需要调试的页面,当您使用browsersync后,您的任何一次代码保存,以上的设备都会同时显示您的改动”。无论您是前端还是后端工程师,使用它将提高您30%的工作效率。
有了它,您不用在多个浏览器、多个设备间来回切换,频繁的刷新页面。更神奇的是您在一个浏览器中滚动页面、点击等行为也会同步到其他浏览器和设备中,这一切还可以通过可视化界面来控制。
安装
1. 安装 Node.js
BrowserSync是基于Node.js的, 是一个Node模块, 如果您想要快速使用它,也许您需要先安装一下Node.js 安装适用于Mac OS,Windows和Linux。
2. 安装 BrowserSync
您可以选择从Node.js的包管理(NPM)库中 安装BrowserSync。打开一个终端窗口,运行以下命令:
npm install -g browser-sync
您告诉包管理器下载BrowserSync文件,并在全局下安装它们,您可以在所有项目(任何目录)中使用。
当然您也可以结合gulpjs
或gruntjs
构建工具来使用,在您需要构建的项目里运行下面的命令:
npm install --save-dev browser-sync
启动
运行命令行工具,进入到该项目(目录)下,并运行相应的命令:
静态网站
// --files 路径是相对于运行该命令的项目(目录)
browser-sync start --server --files "css/*.css, *.html"
// 如果你的文件层级比较深,您可以考虑使用 **(表示任意目录)匹配,任意目录下任意.css 或 .html文件。
browser-sync start --server --files "**/*.css, **/*.html"
执行这些命令之后,就会创建一个本地服务器并自动打开你的浏览器后访问http://localhost:3000
地址。默认打开的是根目录下的index.html
文件,如果要访问其他文件,手动输入相应路径即可。移动端直接访问http://pc端ip:3000
,前提是这些设备要在同一个局域网。
动态网站
如果您已经有其他本地服务器环境PHP或类似的,您需要使用代理模式。 BrowserSync将通过代理URL(localhost:3000)来查看您的网站。
// 主机名可以是ip或域名
browser-sync start --proxy "主机名" "css/*.css"
在本地创建了一个PHP服务器环境,并通过绑定Browsersync.cn来访问本地服务器,使用以下命令方式,Browsersync将提供一个新的地址localhost:3000来访问Browsersync.cn,并监听其css目录下的所有css文件。
browser-sync start --proxy "Browsersync.cn" "css/*.css"
可视化管理页面
通过访问http://localhost:3001
打开可视化页面来进行相关设置
Browsersync+Webpack
安装插件
打开命令行终端,进入项目根目录,执行npm install browser-sync-webpack-plugin --save-dev
安装Browsersync插件
配置webpack.config.js
var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
new BrowserSyncPlugin({
host: 'localhost',
port: 3000,
files: '',
server: {
//指定根目录
baseDir: './'
}
})
然后我们执行webpack -w
命令时浏览器就会自动打开http://localhost:3000/