Live Server(实时服务器)

1,586 阅读3分钟

Live Server(实时服务器)

两个原因:

  1. file://由于安全限制,AJAX请求不适用于该协议,即,如果您的站点通过JavaScript获取内容,则您需要一台服务器。
  2. 文件更改后自动重新加载页面可以加快开发速度。

安装

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"
};
参考文档