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
在服务器主页有两项内容很重要:
远程面板总共有四部分:
支持的调试客户端(运行调试界面的浏览器):
支持的调试目标(须要调试的网站或应用的界面):
不支持的调试目标: