grunt自动刷新liveload
来源:互联网 发布:linux设置时间 编辑:程序博客网 时间:2024/05/19 02:06
需要的grunt插件
grunt-contrib-watch
grunt-contrib-connect
connect-livereload
serve-static
serve-index
connect
优点:
* 自动搭建静态文件服务器,不需在自己电脑上搭建Web服务器。
* 不需要浏览器插件的支持(不现定于某个浏览器)。
* 不需要给网页手动添加livereload.js。
缺点:
* 对于刚接触的人,配置略显复杂。
1.grunt-contrib-connect
作用:启动连接的Web服务器,是主要插件
2.connect-livereload
作用:页面自动刷新
使用connect-livereload
模块,生成一个与LiveReload
脚本(connect-livereload
相当于浏览器的liveload
插件,这里要用到中间件middleware
)
插件会向页面中插入<script src="//localhost:35729/livereload.js?snipver=1" type="text/javascript"></script>
通过LiveReload
脚本,让页面重新加载。
使用 middleware
(中间件),就必须关闭 LiveReload
的浏览器插件
3.serve-static
作用:创建静态文件服务器
启用静态服务,创建一个新的中间件功能来从给定的根目录中提供文件
4.serve-index
作用:提供列表的页面,启用目录浏览
提供包含给定路径的目录列表的页面(当页面启用静态服务并自动打开浏览器的情况下,会在浏览器中自动展示当前目录下所有文件的列表)
5.connect
作用:粘合各种“中间件”一起来处理请求
连接,Connect
是一个简单的框架,可以将各种“中间件”粘合在一起来处理请求,Connect
是使用称为中间件的 “插件” 的节点的可扩展HTTP服务器框架。
var app = require('connect');app.use(' / foo ', function fooMiddleware(req, res, next) { //req.url以“/ foo”开头 //req是Node.js http请求对象 //res是Node.js的http响应对象 //next是一个调用来调用下一个中间件的函数 next();})
在服务器中实际使用Connec
t应用。 该.listen()
方法是启动HTTP服务器的方便( 并且与 您正在运行的Node.js
版本中http.Server
的listen
方法相同)。 var server = app.listen(port);
等于var server = http.createServer(app);
6.Gruntfile.js的配置(复制粘贴即可用)
module.exports = function (grunt) { var serveStatic = require('serve-static'); //启用静态服务,创建一个新的中间件功能来从给定的根目录中提供文件 var serveIndex = require('serve-index'); //提供包含给定路径的目录列表的页面(当页面启用静态服务并自动打开浏览器的情况下,会在浏览器中自动展示当前目录下所有文件的列表) //var app = require('connect');//连接,Connect是一个简单的框架,可以将各种“中间件”粘合在一起来处理请求,Connect是使用称为中间件的 “插件” 的节点的可扩展HTTP服务器框架。 //app.use(' / foo ', function fooMiddleware(req, res, next) { // req.url以“/ foo”开头 // req是Node.js http请求对象 // res是Node.js的http响应对象 // next是一个调用来调用下一个中间件的函数 //next(); //}) //在服务器中实际使用Connect应用。 该.listen() 方法是启动HTTP服务器的方便( 并且与 您正在运行的Node.js版本中http.Server的listen方法相同)。 //var server = app.listen(port);等于var server = http.createServer(app); // 项目配置(任务配置) grunt.initConfig({ // 读取我们的项目配置并存储到pkg属性中 pkg: grunt.file.readJSON('package.json'), // 通过connect任务,创建一个静态服务器 connect: { options: { port: 9000, livereload: 35729, open: true, hostname: 'localhost', base: './' }, livereload: { options: { // 使用connect-livereload模块,生成一个与LiveReload脚本(connect-livereload相当于浏览器的liveload插件,这里要用到中间件middleware) // 插件会向页面中插入<script src="//localhost:35729/livereload.js?snipver=1" type="text/javascript"></script> // 通过LiveReload脚本,让页面重新加载。 // 使用 middleware(中间件),就必须关闭 LiveReload 的浏览器插件 middleware: function (connect) { return [ // 请求connect-livereload中间件,把脚本注入到静态文件中 require('connect-livereload')(), // 静态文件服务器的路径,可以是相对于Gruntfile.js所在目录的相对路径 serveStatic('./'), serveIndex('./') // 静态文件服务器的路径(老版本)connect.static(options.base[0]) // 启用目录浏览(相当于IIS中的目录浏览)(老版本)connect.directory(options.base[0]) ]; } } } }, sass: { dist: { files: { 'css/style.css': 'css/style.scss' }, options: { style: 'compact' } } }, // 通过watch任务,来监听文件是否有更改 watch: { client: { // 监听到变化之后从新在页面中写入livereload options: { livereload: true }, // '**' 表示包含所有的子目录 // '*' 表示包含所有的文件 files: ['*.html', 'css/**/*.scss', 'images/**/*', 'css/*.css'], tasks: ['sass', 'connect'] } } }); // grunt.initConfig配置完毕 // 加载插件 grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-sass'); // 自定义任务 grunt.registerTask('live', ['connect', 'watch']);};
看到如下提示,说明Web服务器搭建完成,并且开始监听任务:
Running "connect:livereload" (connect) taskStarted connect web server on localhost:8000Running "watch" taskWaiting...
注:执行该命令前,如果你有安装过LiveReload的浏览器插件,必须关闭。
注意在网上的好多配置中都是用的老版配置,可能会导错误或页面打不开的情况 grunt-contrib-connect 0.11.x
版本开始,静态文件服务器的创建,需要安装 serve-static
插件支持,否则会出现错误提示“connect.static is not a function Use.
” 另外,启用目录浏览,也需要独立安装 serve-index
插件才能支持。
//由于以上配置方式导致在监听文件变动时编译速度有点慢,下面将wach任务分解一下,这样在执行watch任务是不必监听每一项任务,只监听变动的文件,并执行刷新任务 watch: { sass: { files: ['css/*.scss'], tasks: ['sass'], options: { livereload: true } }, html: { files: ['*.html','teacher/*.html','students/*.html'], options: { livereload: true } }, image: { files: ['images/**/*.{png,jpg,gif}'], options: { livereload: true } }, css: { files: ['css/*.css'], options: { livereload: true } } }
7.Grunt常用插件及示例说明
- grunt自动刷新liveload
- grunt-contrib-connect自动刷新html页面
- Grunt插件之LiveReload 实现页面自动刷新
- Grunt学习1_Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
- Grunt:任务自动管理工具
- Grunt:任务自动管理工具
- 自动构建工具Grunt
- Grunt集成自动重启
- grunt livereload nodemon grunt集成自动重启(实例)
- 自动刷新
- 自动刷新
- grunt 监听文件改变自动编译js
- grunt-spritesmith自动生成雪碧图
- grunt
- grunt
- Grunt
- Grunt
- grunt
- jquery 获取隐藏域的值
- Elastic-Job项目源码分析5 -- 事件追踪
- 正向代理和反向代理
- Java中常用文件IO流类:FileInputStream和FileOutputStream
- c++实验4-项目6
- grunt自动刷新liveload
- bzoj4663 Hack
- unity 2d贴图
- Centos7上的yum命令
- layaAir学习之一:创建空项目----js方向
- 顺序表实现集合及大整数运算
- linux 生成ssl证书
- java项目类型---java新手
- 每天一个linux命令(30): chown命令