Live Server(实时服务器)
两个原因:
- file://由于安全限制,AJAX请求不适用于该协议,即,如果您的站点通过JavaScript获取内容,则您需要一台服务器。
- 文件更改后自动重新加载页面可以加快开发速度。
安装
npm 安装
npm install -g live-server
手动模式
git clone https://github.com/tapio/live-server
cd live-server
npm install # Local dependencies if you want to hack
npm install -g # Install globally
从命令行使用
live-server
live-server在您的项目目录中发出命令。或者,您可以添加路径以用作命令行参数。
这将自动启动默认浏览器。当您对任何文件进行更改时,浏览器将重新加载页面-除非它是CSS文件,否则在不重新加载的情况下应用更改。
命令行参数:
| 参数 | 执行 | |
|---|---|---|
--port=NUMBER | -选择要使用的端口,默认:PORT env var或8080 | |
--host=ADDRESS | -选择要绑定到的主机地址,默认值:IP env var或0.0.0.0(“任何地址”) | |
--no-browser | -禁止自动启动Web浏览器 | |
--browser=BROWSER | -指定要使用的浏览器,而不是系统默认值 | |
| `--quiet | -q` | -禁止记录 |
| `--verbose | -V` | -更多日志记录(记录所有请求,显示所有侦听的IPv4接口,等等) |
--open=PATH | -将浏览器启动到PATH而不是服务器根目录 | |
--watch=PATH | -以逗号分隔的路径字符串,专门用于监视更改(默认值:监视所有内容) | |
--ignore=PATH | -忽略路径的逗号分隔字符串(与anymatch兼容的定义) | |
--ignorePattern=RGXP | -文件的正则表达式忽略(即.*.jade)(不推荐使用赞成--ignore) | |
--no-css-inject | -在CSS更改时重新加载页面,而不是注入更改的CSS | |
--middleware=PATH | -导出要添加的中间件功能的.js文件的路径;可以是没有路径的名称,也不能是引用middleware文件夹中捆绑的中间件的扩展名 | |
--entry-file=PATH | -提供此文件(相对于服务器根目录)以代替丢失的文件(对于单页应用程序很有用) | |
--mount=ROUTE:PATH | -在定义的路线下投放路径内容(可能有多个定义) | |
--spa | -将请求从/ abc转换为/#/ abc(对于单页应用程序非常方便) | |
--wait=MILLISECONDS | -(默认100ms)等待所有更改,然后重新加载 | |
--htpasswd=PATH | -启用位于PATH的http-auth期望htpasswd文件 | |
--cors | -为任何来源启用CORS(反映请求来源,支持带有凭据的请求) | |
--https=PATH | -HTTPS配置模块的路径 | |
--https-module=MODULE_NAME | -自定义HTTPS模块(例如spdy) | |
--proxy=ROUTE:URL | -将所有对ROUTE的请求代理到URL | |
| `--help | -h` | -显示简洁的使用提示并退出 |
| `--version | -v` | -显示版本并退出 |
节点使用
var liveServer = require("live-server");
var params = {
port: 8181, // Set the server port. Defaults to 8080.
host: "0.0.0.0", // Set the address to bind to. Defaults to 0.0.0.0 or process.env.IP.
root: "/public", // Set root directory that's being served. Defaults to cwd.
open: false, // When false, it won't load your browser by default.
ignore: 'scss,my/templates', // comma-separated string for paths to ignore
file: "index.html", // When set, serve this file (server root relative) for every 404 (useful for single-page applications)
wait: 1000, // Waits for all changes, before reloading. Defaults to 0 sec.
mount: [['/components', './node_modules']], // Mount a directory to a route.
logLevel: 2, // 0 = errors only, 1 = some, 2 = lots
middleware: [function(req, res, next) { next(); }] // Takes an array of Connect-compatible middleware that are injected into the server middleware stack
};
liveServer.start(params);
HTTPS
var fs = require("fs");
module.exports = {
cert: fs.readFileSync(__dirname + "/server.cert"),
key: fs.readFileSync(__dirname + "/server.key"),
passphrase: "12345"
};