# 扩充知识

物理像素(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 可以用来辅助区分视网膜设备还是非视网膜设备。缩合上述的几个概念,用一张图来解释:

image.png

众所周知,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 标头的缓存时间(以秒为单位),例如-c1010 秒(默认为3600)。要禁用缓存,请使用-c-1

-U--utc在日志消息中使用 UTC 时间格式。

--log-ip启用客户端 IP 地址的记录(默认值:) false

-P或者将--proxy所有无法在本地解析的请求代理到给定的 URL。例如:-P http://someurl.com

--username 基本身份验证的用户名[无]

--password 基本身份验证密码[无]

-S--ssl启用 https。

-C--certssl cert 文件的路径(默认值:) cert.pem

-K--keyssl 密钥文件的路径(默认值:) 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);
上次更新: 10/29/2019, 6:04:16 PM