# 扩充知识
物理像素(physical pixel): 物理像素又被称为设备像素,他是显示设备中一个最微小的物理部件。每个像素可以根据操作系统设置自己的颜色和亮度。正是这些设备像素的微小距离欺骗了我们肉眼看到的图像效果。
设备独立像素(density-independent pixel): 设备独立像素也称为密度无关像素,可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用的虚拟像素(比如说 CSS 像素),然后由相关系统转换为物理像素。
CSS 像素: CSS 像素是一个抽像的单位,主要使用在浏览器上,用来精确度量 Web 页面上的内容。一般情况之下,CSS 像素称为与设备无关的像素(device-independent pixel),简称 DIPs。
屏幕密度: 屏幕密度是指一个设备表面上存在的像素数量,它通常以每英寸有多少像素来计算(PPI)。
设备像素比(device pixel ratio): 设备像素比简称为 dpr,其定义了物理像素和设备独立像素的对应关系。它的值可以按下面的公式计算得到:
设备像素比 = 物理像素 / 设备独立像素
在 JavaScript 中,可以通过window.devicePixelRatio
获取到当前设备的 dpr。而在 CSS 中,可以通过-webkit-device-pixel-ratio
,-webkit-min-device-pixel-ratio
和 -webkit-max-device-pixel-ratio
进行媒体查询,对不同 dpr 的设备,做一些样式适配(这里只针对 webkit 内核的浏览器和 webview)。
dip 或 dp,(device independent pixels,设备独立像素)与屏幕密度有关 dip 可以用来辅助区分视网膜设备还是非视网膜设备。缩合上述的几个概念,用一张图来解释:
众所周知,iPhone6 的设备宽度和高度为 375pt _ 667pt,可以理解为设备的独立像素;而其 dpr 为 2,根据上面公式,我们可以很轻松得知其物理像素为 750pt _ 1334pt。
http-server 的命令
-p
或--port
要使用的端口(默认为 8080)
-a
要使用的地址(默认为 0.0.0.0)
-d
显示目录列表(默认为true
)
-i
显示 autoIndex(默认为true
)
-g
或者--gzip
当启用(默认为false
)时,它将./public/some-file.js.gz
代替./public/some-file.js
当文件的 gzip 压缩版本存在且请求接受 gzip 编码时。如果 brotli 也启用,它将尝试首先服务 brotli。
-b
或者--brotli
当启用(默认为false
)时,它将./public/some-file.js.br
代替./public/some-file.js
当文件的 brotli 压缩版本存在且请求接受br
编码时。如果 gzip 也被启用,它将首先尝试提供 brotli。
-e
或者--ext
如果没有提供默认文件扩展名(默认为html
)
-s
或者--silent
从输出中抑制日志消息
--cors
通过Access-Control-Allow-Origin
标头启用 CORS
-o [path]
启动服务器后打开浏览器窗口。(可选)提供要打开的 URL 路径。例如:-o / other / dir /
-c
设置缓存控制 max-age 标头的缓存时间(以秒为单位),例如-c10
10 秒(默认为3600
)。要禁用缓存,请使用-c-1
。
-U
或--utc
在日志消息中使用 UTC 时间格式。
--log-ip
启用客户端 IP 地址的记录(默认值:) false
。
-P
或者将--proxy
所有无法在本地解析的请求代理到给定的 URL。例如:-P http://someurl.com
--username
基本身份验证的用户名[无]
--password
基本身份验证密码[无]
-S
或--ssl
启用 https。
-C
或--cert
ssl cert 文件的路径(默认值:) cert.pem
。
-K
或--key
ssl 密钥文件的路径(默认值:) key.pem
。
-r
或--robots
提供/robots.txt(其内容默认为User-agent: *\nDisallow: /
)
-h
或--help
打印此列表并退出。
可以监听本地文件变更的方式:
npm install -g 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
- 要忽略的逗号分隔的路径字符串(任意匹配的定义)--ignorePattern=RGXP
- 正则表达要忽略的文件(即.*\.jade
)(弃用赞成--ignore
)--no-css-inject
- 重新加载 CSS 更改页面,而不是注入更改的 CSS--middleware=PATH
- 导出要添加的中间件函数的.js 文件的路径; 可以是没有路径的名称,也不是扩展名来引用middleware
文件夹中的捆绑中间件--entry-file=PATH
- 提供此文件(服务器根相对)代替丢失的文件(对单页应用程序很有用)--mount=ROUTE:PATH
- 在定义的路径下提供路径内容(可能有多个定义)--spa
- 将来自/ abc 的请求转换为/#/ abc(方便单页应用)--wait=MILLISECONDS
- (默认为 100 毫秒)在重新加载之前等待所有更改--htpasswd=PATH
- 启用 http-auth 期望位于 PATH 的 htpasswd 文件--cors
- 为任何来源启用 CORS(反映请求来源,支持带凭证的请求)--https=PATH
- PATH 到 HTTPS 配置模块--https-module=MODULE_NAME
- 自定义 HTTPS 模块(例如spdy
)--proxy=ROUTE:URL
- 将所有 ROUTE 请求代理到 URL--help | -h
- 显示简洁用法提示并退出--version | -v
- 显示版本并退出
默认选项:
如果文件~/.live-server.json
存在,它将被加载并在命令行中用作 live-server 的默认选项。有关选项名称,请参阅“节点用法”。
var params = {
port: 8181, //设置服务器端口。默认为8080.
host: "0.0.0.0", //设置要绑定的地址。默认为0.0.0.0或process.env.IP。
root: "/public", //设置正在服务的根目录。默认为cwd。
open: false, //如果为false,则默认情况下不会加载浏览器。
ignore: "scss,my/templates", //逗号分隔的字符串,用于忽略
file: "index.html", //设置后,为每个404(对单页应用程序有用)提供此文件(服务器根目录)
wait: 1000, //在重新加载之前等待所有更改。默认为0秒。
mount: [["/components", "./node_modules"]], //将目录挂载到路由。
logLevel: 2, // 0 = errors only, 1 = some, 2 = lots
middleware: [
function(req, res, next) {
next();
},
], //采用一系列与Connect兼容的中间件注入服务器中间件堆栈
};
liveServer.start(params);