Browsersync 是一个前端调试的利器,它能够让你在页面文件改动之后自动刷新浏览器,从而方便了前端的调试工作。
本文就是对于 Browsersync + Gulp 的配置作个简单的笔记。
因为使用Gulp的话,相比起来使用Browser-sync自带的命令行简单点。而且有更多的选择。
首先安装 Browsersync 与 Gulp:
$ npm install browser-sync gulp --save-dev
在 gulpfile.js 中创建新任务:
文件都放在APP中。
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
var config = {
baseDir: 'app',
watchFiles: [ 'app/*.html', 'app/css/*.css', 'app/js/*.js' ]
}
gulp.task('server', function() {
browserSync.init({
files: config.watchFiles,
server: {
baseDir: config.baseDir
}
});
})
gulp.task('default',['server']); //定义默认任务
这里表示以 app 目录作为根目录启动 HTTP 服务,并监听 app 目录下的所有 html、css 以及 js 类型的文件,当这些文件有改动时 Browsersync 会自动刷新浏览器页面。
如果想配合使用 SASS 之类的,可以参考: https://www.browsersync.io/docs/gulp/
需要监听任务只需要打开命令行,输入gulp即可。
实践了一番:使用SASS和JS压缩命令行。
// var browserify = require('browserify'); var gulp = require('gulp'); var browserify = require('gulp-browserify'); var uglify = require('gulp-uglify'); var browserSync = require('browser-sync').create(); var sass = require('gulp-sass'); var reload = browserSync.reload; var config = { baseDir: 'app', watchFiles: [ 'app/*.html', 'app/css/*.css', 'app/js/*.js' ] } gulp.task('server',['sass'], function() { browserSync.init({ files: config.watchFiles, server: { baseDir: config.baseDir } }); gulp.watch("app/scss/*.scss", ['sass']); gulp.watch("app/script/*.js", ['js-watch']); 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})); }); // 处理完JS文件后返回流 gulp.task('js', function () { return gulp.src('app/script/*.js') .pipe(browserify()) .pipe(uglify()) .pipe(gulp.dest('app/js')); }); // 创建一个任务确保JS任务完成之前能够继续响应 // 浏览器重载 gulp.task('js-watch', ['js'], browserSync.reload); gulp.task('default',['server']); //定义默认任务
package.json如下:
{
"name": "gulp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"browser-sync": "~2.12.9"
},
"devDependencies": {
"gulp": "^3.9.1",
"gulp-sass": "^2.3.1",
"gulp-uglify": "^1.5.3",
"gulp-browserify": "^0.5.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "caibaojian",
"license": "ISC"
}
有需要可以拿去用一下,后面考虑加入图片压缩等。
目录结构

目录可能存在着一些不合理的地方。也许要把编译和开发文件单独分出来放在同一个文件里面。
