实时服务器
这是一个小开发服务器,具有活重装能力. 用于黑入您的 HTML/JavaScript/ CSS 文件, 但用于部署最终站点 .
使用这种方法有两个原因:
- AJAX请求与
file://由于安全限制,即如果您的网站通过JavaScript获取内容,则需要服务器. - 在文件更改后自动重新装入页面可以加速开发.
您不需要安装任何浏览器插件, 或手动在您的页面中添加代码片段, 重新装入功能即可工作, 请参看下面的"如何工作" 部分 。 如果你不想/需要活的再装入,你也许应该使用更简单一些的东西,比如下面基于Python的单行线:
python -m SimpleHTTPServer
安装
你需要节点和npm。 你也许应该安装这个全球.
没有办法
npm install -g live-server
手动方式
git clone https://github.com/compodoc/@compodoc/live-server
cd live-server
npm install # Local dependencies if you want to hack
npm install -g # Install globally
来自命令行的使用
发布命令 live-server 在您的项目目录中。 或者您可以添加路径作为命令行参数.
这将自动启动默认浏览器 。 当您修改任何文件时, 浏览器会重新加载页面 - 除非它是一个 CSS 文件, 在此情况下, 修改会被应用而不重新加载 .
命令行参数 :
--port=NUMBER- 选择要使用的端口, 默认: Port env var 或 8080--host=ADDRESS- 选择主机地址绑定, 默认: IP env var 或 0.0.0.0 ("任何地址")--no-browser- 压制自动网页浏览器的启动--browser=BROWSER- 指定要使用的浏览器,而不是系统默认--quiet | -q- 禁止伐木--verbose | -V- 更多记录(记录所有请求,显示所有监听的IPv4接口等)--open=PATH- 启动浏览器到 PATH 而不是服务器根--watch=PATH- 以逗号分隔的路径串来专门监视变化( 默认: 监视一切)--ignore=PATH- 逗号分隔的路径串以忽略(任意匹配- 兼容的定义)--ignorePattern=RGXP- 要忽略的文件的正则表达式( ie).*\.jade(中文(简体) )被否决 赞成:--ignore(中文(简体) )--no-css-inject- 在CSS更改上重新加载页面,而不是插入更改的CSS--middleware=PATH- 路径 .js 文件导出一个要添加的中间软件函数;可以是没有路径的名称,也可以是引用捆绑的中间软件的扩展middleware文件夹--entry-file=PATH- 服务此文件( server root relate) 以取代缺失文件( 用于单个页面应用)--mount=ROUTE:PATH- 在所定义的路由下为路径内容服务(可能采用多种定义)--spa- 将请求从 /abc 翻译为 /#/abc (单页 Apps 的手)--wait=MILLISECONDS- (默认100ms)等待所有更改,然后重新装入--htpasswd=PATH- 启用位于 PATH 的 http- auth 期待 htpasswd 文件--cors- 启用任何源代码/源代码/源代码/源代码/源代码/源代码/源代码/源代码/源代码--https=PATH- HTTPS 配置模块的路径--https-module=MODULE_NAME- 自定义HTTPS模块(例如:.spdy(中文(简体) )--proxy=ROUTE:URL- 代理所有 RUTE 到 URL 的请求--help | -h- 显示字节使用提示并退出--version | -v- 显示版本并退出
默认选项 :
如果一个文件 ~/.live-server.json 存在它将被加载并用作命令行活服务器的默认选项。 选项名称见"Usage from node".
从节点使用
var liveServer = require("@compodoc/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 (韩语)
为了启用HTTPS支持,需要创建配置模块.
模块必须导出用于配置 HTTPS 服务器的对象 .
密钥与其中的密钥相同 options 页:1 tls.create 服务器。 。 。 .
例如:
var fs = require("fs");
module.exports = {
cert: fs.readFileSync(__dirname + "/server.cert"),
key: fs.readFileSync(__dirname + "/server.key"),
passphrase: "12345",
};
如果使用节点API,也可以直接将配置对象传递到模块上,而不是路径.
HTTP/2 导弹
要获得 HTTP/2 支持,您可以通过 --https-module CLI 参数 (httpsModule 选项. 请先安装模块 .
HTTP/2 未加密模式不由浏览器支持,因此不由 live-server。见 这个问题 财务报告和审定财务报表 我可以使用HTTP/2上的页面 更多细节.
例如来自 CLI( bash) :
live-server \
--https=path/to/https.conf.js \
--https-module=spdy \
my-app-folder/
解决问题
- 更改时不装入
- 打开您的浏览器控制台: 顶部应该有一条信息, 声明启用了活式重载 。 注意您需要一个支持 WebSockets 的浏览器 。 如有出错,处理. 如果还不行的话, 提交问题。 。 。 .
- 错误: 监视 ENOSPC
- 见 建议的解决办法。 。 。 .
- 重新装入工程, 但更改缺失或过时
- 尝试使用
--wait=MS选项。 何处MS以毫秒计的时间等待发布重装.
- 尝试使用
如何运作
服务器是一个简单的节点应用程序,为工作目录及其子目录服务. 它还监视文件进行更改,一旦发生这种情况,它通过网络套接字连接向浏览器发送信息,指示它重新上载. 为了使客户端支持这一点,服务器向每个请求的html文件注入了JavaScript代码的小块. 此脚本建立网络套接字连接并听取重装请求 。 CSS文件可以通过从 DOM 中找到被引用的样式表并欺骗浏览器来获取并再次解析,而无需完整页面再加载即可刷新.
捐款
我们欢迎捐款! 见 捐款额 详细情况.
版本历史
- v1.2.1 (中文(简体) )
--https-module=MODULE_NAME指定自定义的 HTTPS 模块(例如).spdy(@pavel) (西班牙语)--no-css-inject以重装 css 上的页面更改而不是插入更改 (@ kylecordes)- 更新依赖性以消除道具中的脆弱性
- 页:1
- 添加
--middleware使用外部中间软件的参数 middlewareAPI 参数现在也接受类似于--middleware- 更改文件监视器以提高速度 (@ pavel)
--ignore现在接受regexps 和 globs,--ignorePattern贬值 (@pavel)- 已添加
--verbosecli 选项( log Level 3) (@ pavel)- 日志所有请求, 无法输入 html 文件时显示警告, 显示所有监听 IPv4 接口...
- HTTPS 配置现在也接受一个普通对象 (@ pavel)
- 移动
--spa到捆绑的中件文件 - 新捆绑
spa-no-assets类似工作的中间软件spa但忽略带有扩展的请求 - 允许多个
--open参数 (@ PirtleShell) - 输入到
head若为body未找到 (@ pmd1991) - 更新依赖关系
- 添加
- 页:1
- 代理支持 (@ pavel)
- 中间软件支持 (@ achandrasekar)
- 依赖性更新 (@tapio, @rahatarmanahmed)
- 使用 Travis CI
- v1.0.0 (韩语)
- HTTPS 支持 (@ pavel)
- HTTP 基本认证支持 (@hey- johnypark)
- CORS 支持 (@ pavel)
- 支持挂起单个文件 (@ pavel)
--spacli 单页应用程序选项,将请求由 /abc 翻译为 /#/abc (@evanplaice)- 检查
IPvar 默认主机 (@ dotnetCarpenter) - 修补
ignorePattern从配置文件 (@ cyfersystems) - 修复运行于 Windows (@ peterhul90) 的测试
- 页:1
- 更新了对最新版本的依赖性
--quiet现在对注射失败的警告保持沉默- 明确
--watch路径现在禁止添加挂载路径到监视中
- 页:1
--ignorePattern=RGXP通过 regexp (@ psi-4ward) 排除文件--watch=PATHcli 选项只监视给定路径
- 页:1
--mount=ROUTE:PATH指定路径的 cli 选项 (@ pmentz)--browser=BROWSER指定要使用的浏览器的 cli 选项 (@ sakiv)- 改进了错误报告
- 将重装代码插入 SVG 文件的基本支持 (@ dotnetCarpenter, @tapio)
- LiveServer.shutdown () 关闭服务器和文件监视器的功能
- 如果给出了主机参数, 请将其用于浏览器 URL 而非解析的 IP
- 初步测试框架 (@ harrytruong, @evanplaice, @tapio)
- 页:1
- 装入初始设置
~/.live-server.json如果存在 (@ mikker) - 允许
--port=0以选择随机端口 (@viqueen) - 当文件扩展名不是小写时修复插入 (@ gusgard)
- 如果浏览器不支持 WebSockets (@ mattymalony) , 则会优雅地失败
- 切换到更维护的浏览器打开库
- 装入初始设置
- 页:1
- 添加
--version / -v要显示版本的命令行旗 - 添加
--host映射 API 参数的 cli 选项 - 再次使用127.0.0.1而不是0.0.0.0作为浏览器 URL
- 添加
- 第0.8.0条
- 同时支持多个客户端 (@ dvv)
- 如果默认值在使用中, 请选择一个随机可用的端口 (@ oliversy, @ harrytruong)
- 修复 Chrome 有时不应用 CSS 更改 (@ harrytruong)
--ignore=PATH不监视给定的服务器根相对路径的 cli 选项 (@ richardgoater)--entry-file=PATH在找不到请求时指定要使用的文件的 cli 选项 (@izeau)--wait=MSECScli 选项在重新装入前等待指定时间 (@ leolower, @ harrytruong)
- 页:1
- 尝试注入碎片 html 文件而导致的固定吊
</body> logLevel在库中控制控制控制台垃圾邮件量的参数--quiet压制控制台垃圾邮件的 cli 选项--open=PATHcli 选项在指定的路径中启动浏览器而不是root (@ richardgoater)- 图书馆
noBrowser: true选项为偏好open: false
- 尝试注入碎片 html 文件而导致的固定吊
- 页:1
- API BREAKAGE: LiveServer 库现在在一个对象中取取参数
- 添加指定 lib 主机的可能性
- 只在使用网页组件( 如 Polymer) (@ davej) 时注入主机页面
- 打开浏览器到 127.0.0.1, 因为 0.0.0.0 有问题
--no-browser命令行旗以压制浏览器启动--help显示用途的命令行旗
- 页:1
- 允许从命令行指定端口 :
live-server --port=3000(@ Pomax) (中文(简体) ) - 不要将脚本作为第一件事注射,使 DOCTYPE 仍然有效 (@wmira)
- 更明确地听取所有接口 (@ inadarei)
- 允许从命令行指定端口 :
- v. 6.3 (单位:千美元)
- 修正多个污染 css 请求的目录参数
- 在插入的脚本中不要创建全局变量
- 页:1
- 修正从
send
- 修正从
- 第0.6.1号
- 修复 npm 麻烦
- v. 6.0 (单位:千美元)
- 支持使用节点库 (@dpgraham)
- 页:1
- 观看被打破 新版本的
watchr> 2.3.3 - 添加一些日志到控制台
- 观看被打破 新版本的
- 页:1
- 允许指定目录从命令行服务
- v0.3.0 (韩语)
- 目录列表
- 页:1
- 空上 CSS 刷新( 不重新装入页面)
- 正在重构
- 页:1
- 文件和元数据
- 页:1
- 初步释放
许可证
使用麻省理工学院许可代码 连接 财务报告和审定财务报表 根数。 。 。 .
(麻省理工学院执照)
版权 (c) 2012 Tapio Vierros
特此准许任何人免费获得本软件和相关文件文件("软件")的副本,不受限制地在软件中进行交易,包括不受限制地享有软件的使用、复制、修改、合并、出版、分发、分版和(或)销售的权利,并允许软件获得者这样做,但须符合下列条件: 1
上述版权通知和许可通知应载入软件的所有副本或大部分.
软件是提供的"AS IS", 没有任何种类的恐惧, 释放或被卷入, 包括但不限制在 危机的保障, 证明一个特定的目的和无关。 任何索赔、索赔或其他负债,无论是合同、交易或其他行为,产生于、产生于或涉及软件或软件的使用或其他交易的行为,都不得作为担保.