Browsersync + Grunt.js
我们为 Grunt 提供了 官方插件 ,这让 Browsersync 整合进你的开发流程变得很容易。下面是一些常用配置的示例,便于快速上手 - 可以将它们 作为一个起点,但是不要忘记你还可以使用任何其他 Browsersync 参数 。
Install ^ TOP
首先,你需要安装 Browsersync 插件...
$ npm install grunt-browser-sync --save-dev
... 然后将此行添加到你的 Gruntfile.js
文件
grunt.loadNpmTasks('grunt-browser-sync');
静态文件服务器 ^ TOP
最简单的例子是监视 CSS 文件并使用内置服务器托管这些 HTML/CSS/JS 静态文件。仅使用此配置就可以启动一个小型服务器(使用当前目录作为根目录), 监视 CSS 文件的改变并将这些改变字东注入到所有已连接的浏览器端。
browserSync: {
bsFiles: {
src : 'assets/css/*.css'
},
options: {
server: {
baseDir: "./"
}
}
}
代理(Proxy) ^ TOP
如果你已经在本地配置了一个服务器(利用 vhosts 等技术),只需将相关信息告诉 Browsersync,它将为你完成其余的工作。
browserSync: {
dev: {
bsFiles: {
src : 'assets/css/style.css'
},
options: {
proxy: "local.dev"
}
}
}
+ 其他监听任务 ^ TOP
浏览器同步功能并不能代替常规的 watch
任务(例如编译 SASS、LESS 等),
他们被设计成一起使用。如果你打算这样做,你需要设置 watchTask: true
并确保
在 Browsersync 之后调用 watch 任务。例如,编译 SASS,然后将 CSS 注入到所有打开的浏览器中
(如需刷新页面),这三个任务的而配置可能像下面这样:
// This shows a full config file!
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'
}
}
}
});
// load npm tasks
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-browser-sync');
// define default task
grunt.registerTask('default', ['browserSync', 'watch']);
};
Jump to...