連接中間件,將livereload腳本添加到響應中产还。不需要瀏覽器插件。如果您對瀏覽器插件感到滿意嘀趟,那么您不需要這個中間件脐区。
安裝
npm install connect-livereload --save-dev
使用
注意:如果您使用這個中間件,您應該確保關(guān)閉瀏覽器LiveReload擴展她按,如果您已安裝它牛隅。
這個中間件可以與LiveReload模塊一起使用炕柔,例如grunt-contrib-connect或grunt-contrib-watch。
connect-livereload
本身不服務于livereload.js
腳本媒佣。
'use strict';
var lrSnippet = require('connect-livereload')({port:35729});
var serveStatic = require('serve-static'); //加載serve-static模塊,設置靜態(tài)文件服務器的路徑
var serveIndex = require('serve-index');//加載serve-index模塊,啟用目錄瀏覽
module.exports=function (grunt) {
require('load-grunt-tasks')(grunt);
require('time-grunt')(grunt)
var config={
app:'app',
dist:'dist',
tmp:'.tmp'
};
grunt.initConfig({
project:config,
watch:{
html:{
files:['<%=project.dist%>/*.html'],
options:{
livereload: 35729
}
}
},
connect:{
dist:{
options:{
port:9001,
base:'dist',
open:true,
middleware:function (connect) {
return [
// 把腳本匕累,注入到靜態(tài)文件中
lrSnippet,
// 靜態(tài)文件服務器的路徑
serveStatic('dist'),
// 啟用目錄瀏覽(相當于IIS中的目錄瀏覽)
serveIndex('dist')
];
}
}
}
}
})
//注冊一個名為'serve', 輸入grunt serve執(zhí)行這個任務
grunt.registerTask('serve','Compile then start a connect web server',function (target) {
if(target === 'dist'){
}else if (target === 'static'){
}
grunt.task.run([
'connect',
'watch'
])
});
grunt.event.on('watch', function(action, filepath, target) {
grunt.log.writeln(target + ': ' + filepath + ' has ' + action);
grunt.log.writeln('action='+action);
grunt.log.writeln('filepath='+filepath);
grunt.log.writeln('target='+target);
});
}