说说 browsersync

简介:

相信做过前端开发的人都知道,当你改变前端项目里的文件的时候,为了查看更改之后的效果需要手动的刷新浏览器,其实这个很浪费时间,那么这时候你可以选择用用browser-sync.


browser-sync是一个浏览器同步工具,可以帮你解决在项目开发时,文件保存之后,浏览器同步刷新.

本篇文章主要讲讲在下面几种情况下如何使用browser-sync

  • 命令行
  • Grunt
  • Gulp
  • npm run
  • nodemon

安装

npm install -g browser-sync

命令行中使用

标准命令如下

browser-sync start [options]

下面说说常用的选项

--files

后面带上相应监听的文件列表,格式例子如下:

  • --files "js/.js, css/.css"
  • --files "js/base.js, css/base.css"

--server

表示启动一个内置的web服务器

--proxy

这个一般用在有本地的php,nginx部署的web服务器下,例子如下:

  • --proxy "localhost:3000"
  • --proxy "www.cloud.cn"

最后来一个监听本地已有www.c.cn虚拟机的浏览器同步命令

browser-sync start --proxy "www.c.cn" --files "js/.js,css/.css"

Grunt中使用

想要在Grunt里使用则要添加它的插件,官方插件名称为grunt-browser-sync,

npm install grunt-browser-sync --save-dev

运行上面命令之后,就可以在Gruntfile.js里增加配置文件了,下面是它的配置格式

browserSync: {
  dev: {
    bsFiles: {
      src: 'public/**/*.{js,css}'
    },
    options: {
      proxy: 'localhost:3000'
    }
  }
}

首先定义一个dev目标,然后里面有两固定参数bsFilesoptions,前者定义监听的文件列表,这里的文件格式模式比较灵活;后者里面可以定义proxy的值.

然后加载插件任务模块

    grunt.loadNpmTasks('grunt-browser-sync');
    grunt.registerTask('default', ["browserSync"]);

这个结合watch,compass模块还可以实现修改的时候合并sasscss,然后同步浏览器,更多的例子点击这里,传送门

Glup中使用

grunt一样,先安装glup插件browser-sync,然后在Glupfile.js里配置任务

var gulp = require('gulp');
var browserSync = require('browser-sync');

gulp.task('browser-sync', function () {
  browserSync({
    proxy: 'localhost:3000',
    files: ['public/**/*.{js,css}']
  });
});

选项里一般配置proxy或者files即可,关于glup的详情例子可以看这里, 传送门

NPM中使用

这里使用npm run命令运行,相关的配置放在package.jsonscript属性里,命令如下:

browser-sync start --proxy "www.c.cn" --files "js/.js,css/.css"

nodemon中使用

nodemon是保证使用nodejs作为服务器的时候,代码有变动时可以自动的重启相关的nodejs服务,这里可以结合使用browser-sync来保证静态资源的同步化

先定义一个app.js.

var express = require('express');
var browserSync = require('browser-sync');
var app = express();
var port = process.env.PORT || 3000;

app.listen(port, listening);

function listening () {
  browserSync({
    proxy: 'localhost:' + port,
    files: ['public/**/*.{js,css}']
  });
}

然后运行下面的命令

nodemon app.js

这样即可以保证服务器代码的变动自动重启,也能保证静态资源的浏览器同步化.

总结

远离低效率,就用browser-sync!!!

相关参考资料

目录
相关文章
|
Web App开发 存储 JavaScript
面向WEB开发人员的Docker(七):使用 Docker 开发Node应用程序
到目前为止,已经使用了预构建的 Docker 镜像,例如MySQL、Vue、Nginx和WordPress。都比较实用,本节来介绍在容器中开发NodeJs应用程序。
569 0
面向WEB开发人员的Docker(七):使用 Docker 开发Node应用程序
|
安全 前端开发 JavaScript
我们自己开发的代码托管服务,用于内部替代 Github,免费开源给大家使用
蒲公英团队开发的代码托管服务,Github的开源替代品CodeFever,经过近两年的打磨和稳定性验证,今天已经正式免费开源给大家使用,欢迎大家在 Github 搜索CodeFever访问我们的仓库,有任何的想法或建议也欢迎给我们提交 ,一起参与到CodeFever的开源共建中。
251 0
我们自己开发的代码托管服务,用于内部替代 Github,免费开源给大家使用
|
前端开发 JavaScript 安全
前端加密工具crypto-js
https://juejin.cn/post/7099013860597694500 前端加密工具crypto-js
746 0
前端加密工具crypto-js
|
缓存 JSON 移动开发
深入解析require源码,知其根,洞其源
深入解析require源码,知其根,洞其源
419 1
深入解析require源码,知其根,洞其源
|
编解码 JavaScript 前端开发
从零开始搭建 vue-cli 项目
从零开始搭建 vue-cli 项目
220 0
|
Rust JavaScript Java
如何快速上手CentOS8(上)
CentOS8 9月底发布,引入了不少新的功能和操作习惯,我们如果快速上手呢?首先我们从三个疑问说起三个疑问:
如何快速上手CentOS8(上)
|
JSON JavaScript API
FastAPI(1)- 简单介绍
FastAPI(1)- 简单介绍
307 0
|
JavaScript 前端开发 Java
Java的字节码和ABAP load的比较
Java的字节码和ABAP load的比较
127 0
Java的字节码和ABAP load的比较
|
JavaScript 小程序 关系型数据库
飞天加速计划使用体验与心得
本文介绍这次使用阿里云服务器的经历总结一下自己的一些小白心得
271 0
飞天加速计划使用体验与心得
|
运维 前端开发 程序员
我的esc服务器
我的esc体验之旅
我的esc服务器