Browsersync API
配置
命令行
可视化管理
http://localhost:3001
安装browser-sync
npm install -g browser-sync
静态网站开发
--files 路径是相对于运行该命令的项目(目录)
browser-sync start --server --files "css/*.css"
// --files 路径是相对于运行该命令的项目(目录)
browser-sync start --server --files "css/*.css, *.html"
// 如果你的文件层级比较深,您可以考虑使用 **(表示任意目录)匹配,任意目录下任意.css 或 .html文件。
browser-sync start --server --files "**/*.css, **/*.html"
动态网站开发
// 主机名可以是ip或域名
browser-sync start --proxy "主机名" "css/*.css"
Browsersync+Webpack
npm install browser-sync-webpack-plugin --save-dev
//配置webpack.config.js
var BrowserSyncPlugin = require('browser-sync-webpack-plugin');
new BrowserSyncPlugin({
host: 'localhost',
port: 3000,
files: '',
server: {
//指定根目录
baseDir: './'
}
})
Browsersync + Gulp.js
npm install browser-sync gulp --save-dev
//在gulpfile.js中配置
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
// 静态服务器
gulp.task('browser-sync', function() {
browserSync.init({
server: {
baseDir: "./"
}
});
});
// 代理
gulp.task('browser-sync', function() {
browserSync.init({
proxy: "你的域名或IP"
});
});
sass+css注入
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
var sass = require('gulp-sass');
var reload = browserSync.reload;
// 静态服务器 + 监听 scss/html 文件
gulp.task('serve', ['sass'], function() {
browserSync.init({
server: "./app"
});
gulp.watch("app/scss/*.scss", ['sass']);
gulp.watch("app/*.html").on('change', reload);
});
// scss编译后的css将注入到浏览器里实现更新
gulp.task('sass', function() {
return gulp.src("app/scss/*.scss")
.pipe(sass())
.pipe(gulp.dest("app/css"))
.pipe(reload({stream: true}));
});
gulp.task('default', ['serve']);
sass+source maps
// 处理完JS文件后返回流
gulp.task('js', function () {
return gulp.src('js/*js')
.pipe(browserify())
.pipe(uglify())
.pipe(gulp.dest('dist/js'));
});
// 创建一个任务确保JS任务完成之前能够继续响应
// 浏览器重载
gulp.task('js-watch', ['js'], browserSync.reload);
// 使用默认任务启动Browsersync,监听JS文件
gulp.task('serve', ['js'], function () {
// 从这个项目的根目录启动服务器
browserSync({
server: {
baseDir: "./"
}
});
// 添加 browserSync.reload 到任务队列里
// 所有的浏览器重载后任务完成。
gulp.watch("js/*.js", ['js-watch']);
});
浏览器重载
// 处理完JS文件后返回流
gulp.task('js', function () {
return gulp.src('js/*js')
.pipe(browserify())
.pipe(uglify())
.pipe(gulp.dest('dist/js'));
});
// 创建一个任务确保JS任务完成之前能够继续响应
// 浏览器重载
gulp.task('js-watch', ['js'], browserSync.reload);
// 使用默认任务启动Browsersync,监听JS文件
gulp.task('serve', ['js'], function () {
// 从这个项目的根目录启动服务器
browserSync({
server: {
baseDir: "./"
}
});
// 添加 browserSync.reload 到任务队列里
// 所有的浏览器重载后任务完成。
gulp.watch("js/*.js", ['js-watch']);
});
手动重载
// 使用变量引用 `reload` 方法
var reload = browserSync.reload;
// 编译 SASS & 自动注入到浏览器
gulp.task('sass', function () {
return gulp.src('scss/styles.scss')
.pipe(sass({includePaths: ['scss']}))
.pipe(gulp.dest('css'))
.pipe(reload({stream:true}));
});
// 监听scss和html文件, 当文件发生变化后做些什么!
gulp.task('serve', ['sass'], function () {
// 从这个项目的根目录启动服务器
browserSync({
server: {
baseDir: "./"
}
});
gulp.watch("scss/*.scss", ['sass']);
gulp.watch("*.html").on("change", browserSync.reload);
});
browsersync+grunt.js
official Plugin
npm install browser-sync gulp --save-dev
//Gruntfile.js配置
grunt.loadNpmTasks('grunt-browser-sync');
静态服务器
browserSync: {
bsFiles: {
src : 'assets/css/*.css'
},
options: {
server: {
baseDir: "./"
}
}
}
Proxy代理
browserSync: {
dev: {
bsFiles: {
src : 'assets/css/style.css'
},
options: {
proxy: "local.dev"
}
}
}
监听
// 这是一个完整的配置文件!
module.exports = function (grunt) {
grunt.initConfig({
watch: {
files: 'app/scss/**/*.scss',
tasks: ['sass']
},
sass: {
dev: {
files: {
'app/css/main.css': 'app/scss/main.scss'
}
}
},
browserSync: {
dev: {
bsFiles: {
src : [
'app/css/*.css',
'app/*.html'
]
},
options: {
watchTask: true,
server: './app'
}
}
}
});
// 加载NPM任务
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-browser-sync');
// 定义默认任务
grunt.registerTask('default', ['browserSync', 'watch']);
};