1、grunt server服務css
'use strict'; module.exports = function (grunt) { // Project configuration. grunt.initConfig({ connect: { server: { options: { protocol: 'http', port: 8000, hostname: '*', keepalive: true, base: ['src/'] } } } }); grunt.loadNpmTasks('grunt-contrib-connect'); }
1. openhtml
若是你但願在啓動服務以後,自動打開瀏覽器,而不用本身打開瀏覽器,再輸入訪問地址,能夠將 open 設置爲 true。前端
open 能夠設置 boolean, 字符串,對象。默認爲 false,設置爲 true 將會自動打開瀏覽器。若是設置爲字符串,則爲瀏覽器打開的地址。對象的配置將會直接傳遞給 open 處理。 web
{ target: 'http://localhost:8000', // target url to open, 目標路徑
appName: 'chrome', // name of the app that opens, ie: open, start, xdg-open,自動啓動的應用名稱, 好比你的瀏覽器:chrome callback: function() {} // called when the app has opened
}
2. livereload,能夠配置爲 boolean 或者 數值,用來表示是否支持 livereload。chrome
設置爲 true 或者數值表示支持 connect-livereload,可是這個設置不能直接使用,須要 connect-livereload 的配合,因此並不能直接實現自動加載。你還須要 grunt-contrib-watch 或者其餘的庫支持來實現文件修改時的自動加載。apache
3. useAvailablePort,如何使用端口,若是設置爲 true,則任務會尋找 port 指定的下一個可用的端口,默認爲 false. npm
4. onCreateServer,服務建立以後的回調函數,容許集成其它庫到網站中,例如,集成 Socket.IO 的示例。注意,這須要你先準備好了 socket.io 模塊。 數組
grunt.initConfig({ connect: { server: { options: { port: 8000, hostname: '*', onCreateServer: function(server, connect, options) { var io = require('socket.io').listen(server); io.sockets.on('connection', function(socket) { // do something with socket }); } } } } });
5. middleware 瀏覽器
很顯然,網站處理的中間件。若是你以爲這個默認的靜態文件服務器不夠強大的話,能夠經過中間件進行擴展。能夠配置一個函數或者數組,默認爲使用 options.base 處理靜態文件和目錄瀏覽的數組。若是提供了一個數組的話,就會取代默認的服務器處理,直接採用自定義的中間件進行處理,這須要咱們徹底定義服務器中的處理。sass
6. 配置多個服務器,須要注意的是,若是有一個服務器的 keepalive 設置爲 true,就會阻塞其它的服務器。
// Project configuration. grunt.initConfig({ connect: { site1: { options: { port: 9000, base: 'www-roots/site1' } }, site2: { options: { port: 9001, base: 'www-roots/site2' } } } });
grunt-contrib-connect , 用來充當一個靜態文件服務器,自己集成了 livereload 功能
grunt-contrib-watch , 監視文件的改變,而後執行指定任務,這裏用來刷新 grunt serve
打開的頁面
輔助的插件
load-grunt-tasks , 省事的插件,有了這個能夠不用寫一堆的grunt.loadNpmTasks('xxx')
,再多的任務只須要寫一個 require('load-grunt-tasks')(grunt)
。
module.exports = function(grunt){ //require('load-grunt-tasks')(grunt); //加載全部的任務 //require('time-grunt')(grunt); 若是要使用 time-grunt 插件 require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); grunt.initConfig({ connect: { options: { port: 9000, hostname: '*', //默認就是這個值,可配置爲本機某個 IP,localhost 或域名 livereload: 35729 //聲明給 watch 監聽的端口 }, server: { options: { open: true, //自動打開網頁 http:// base: [ '/Users/chen/Documents/workspace/sirius/' //主目錄 ] } } }, watch: { livereload: { options: { livereload: '<%=connect.options.livereload%>' //監聽前面聲明的端口 35729 }, files: [ //下面文件的改變就會實時刷新網頁 'app/*.html', 'app/style/{,*/}*.css', 'app/scripts/{,*/}*.js', 'app/images/{,*/}*.{png,jpg}' ] } } }); grunt.registerTask('serve', [ 'connect:server', 'watch' ]); }
browserSync: { bsFiles: { src : 'assets/css/*.css' }, options: { server: { baseDir: "/Users/chen/Documents/workspace/sirius/" } } }
3、 Weinre
npm -g install http://example.com/path/to/apache-cordova-weinre-X.Y.Z-bin.tar.gz
還能夠經過 Node 包管理工具安裝: (全局,安裝一次就能夠)
sudo npm -g install weinre
安裝好之後就能夠啓動 Weinre 了,Weinre 提供了6個可選的啓動參數,其中下面兩個參數通常會修改,其它的用默認值就能夠了。
weinre --boundHost -all-
這些配置也能夠在 Weinre 根目錄下建立 server.properties 文件配置,內容以下所示:
boundHost: -all- httpPort: 8081 reuseAddr: true readTimeout: 1 deathTimeout: 5
在服務器主頁有兩項內容很重要:
遠程面板總共有四部分:
支持的調試客戶端(運行調試界面的瀏覽器):
支持的調試目標(須要調試的網站或應用的界面):
不支持的調試目標: