@colorreefventures/现场工具
珊瑚礁公共网站的3个命令行工具,这是由Amplify Hosting服务的Next.js静态输出.
两个地点的前两个地点是: scripts/serve.ts 财务报告和审定财务报表 scripts/lighthouse.ts他们现在是垃圾桶,还有..
产品脚本去。 第三锁后门一地.
reef-serve [--root out] [--port 3140]
reef-lighthouse [--root out] [--reports lighthouse] [--port 3160] [--threshold 90] [--retries 2] [--shard 1/3] [--chrome <path>] [path ...]
reef-door-bundle --site <id> [--out out] --door-url <url> --hosts <h1,h2> --jwks-url <url> [--signout-chain id=host,...]
[--name <display name>] [--mark <file>] [--mark-dark <file>] [--accent #rrggbb] [--accent-dark #rrggbb]
reef-serve 对 Playwright 和 Lighthouse 的导出方式服务: 目录答案及其
index.html,一个目录路径,没有它的斜线重定向到它, 其他的都是有状态的404页 404,
而文本会随着CDN的压缩被压缩. PORT 读取时间 --port 未给出, 所以是一个 Playwright
webServer 命令可以通过 :
webServer: { command: `pnpm exec reef-serve --port ${port}`, port },
reef-lighthouse 是合并门:在导出站点地图(或给定的路径)中每一页的灯塔
默认的移动仿真,每一个性能,可访问性,最佳做法和在阈值或上方的SEO. A 类
下页再次被测量,最多 --retries (默认为2次),其运行的中位数决定:
性能得分在共享跑道上同一页跑道之间摇晃几分,一个低跑道应该
门三跑不会失败, 而每跑一次发现低的一页仍然失败。 下方的一页失败
运行,然后将其上份报告留在 --reports类别本身的楼层--performance 85代表着
仅该类别的阈值,即一个站点的外壳将每页小于90分的分数放在共用跑道上
其他三类为90个. --shard <index>/<count> 分页比例,每页
count-从 index-th (基于1个,作为 Playwright) --shard因此,一个地方的大门向外延伸 一个跑者把它分割
灯塔一次测量一页,每页约14秒
在一个跑道上并肩作战, 将扭曲对方的成绩。 灯塔本身不是附属物,因为它
捆绑轴-核心(MPL-2.0),在家族许可列表之外;它贯穿 pnpm dlx,钉住
(单位:千美元)--lighthouse-version) (中文(简体) ). Chrome 是 Playwright 的铬 当 @playwright/test 安装在这个软件包旁边,
或者说 --chrome。 。 。 .
大门
reef-door-bundle 将静态导出转换成可扩展的部署,不从
门。 写着 .amplify-hosting/ 门内输出的计算包和部署清单
确切的一条路线, /* 要计算,没有静态路径,所以每个字节(页,RSC有效载荷, _next/static 块,
相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 应用程序运行在平台上 WEB_COMPUTE 带有缓存
类型 AMPLIFY_MANAGED所以饼干在CDN的缓存密钥中.
reef-door-bundle --site <id> --door-url https://<door> --hosts <host> --jwks-url https://<door>/.well-known/crv-door-jwks.json \
--signout-chain <id>=<host>,<id>=<host>
每个旗子都掉回一个环境变量,所以一个构建的 spec可以设置每个应用程序: CRV_DOOR_URL, (中文(简体) ),
CRV_DOOR_HOSTS, (中文(简体) ), CRV_DOOR_JWKS_URL, (中文(简体) ), CRV_DOOR_SIGNOUT_CHAIN 财务报告和审定财务报表 CRV_DOOR_HOST_HEADER (单位:千美元)host,默认值,或
x-forwarded-host 如果平台重写主机). 垃圾桶会取回JWKS,如果无法到达则会失败建造,
空的,或者除了P-256 公用钥匙以外的任何东西,它拒绝 static/ 目录, 第二条路由和超过200 MB的捆绑.
闸门是一个节点服务器,没有依赖性(它导入了节点自己的模块,没有其他模块,测试持有), 在3000号口监听 对于每项请求,顺序如下:
- 路径
..,反斜或控制字符,原始或百分比编码,是400;非GET, 头部或POST是405. - 未输入主机
--hosts是一个空的 403 . /robots.txt拒绝一切;/_door/health答题ok。 。 。 .POST /_door从形体取出门票:kid在JWKS中,由门发行 对于这个精确的宿主, 未过期 和生活最多一个小时__Host-crv_door_state饼干和命名 同样的峡谷next作为形式。 它变成__Host-crv_door饼干HttpOnly; Secure; SameSite=Lax, (中文(简体) ), 以及303至303小时next设置__Host-crv_door_seen=1(单位:千美元)HttpOnly; Secure; SameSite=Lax, 30天), 一个没有身份的标记, 这个浏览器在这里有一个会话 。 任何错误都是303回门?error=ticket。 。 。 .GET /_door/signin?next=<path>启动登录:它运行next下一个(缺失、重复或 拒绝一个变成/),设置新32字节__Host-crv_door_state饼干SameSite=None,十分钟)和 回答门上的302site, (中文(简体) ),host, (中文(简体) ),next财务报告和审定财务报表state。即将来临的一页的按钮链接在这里。 仅a 顶级导航启动一个( 导航, 或请求, 不包含Sec-Fetch-*接受 HTML 的标题,以及Sec-Fetch-Dest: document当发送时); 图像、帧或取回得到一个空的401, 没有饼干, 所以另一个 网站不能覆盖访客状态的中签./_door/signout?then=<id>清除全部三个 cookie( 一个空值和一个Expires在时代,带有属性 都设定了,没有Max-Age,Firefox可以保留片刻作为饼干结束),然后用固定的地图继续:到站点的大门<id>内--signout-chain,以它命名网站,或者,为任何其他(door,最后一站,门的/signout/。它从不从查询方向重定向到 URL.- 带有有效的会话, 导出将用作放大其、 HTML 和
.txt作为private, no-store财务报告和审定财务报表/_next/static/**作为private, max-age=31536000, immutable。 。 。 . - 没有一个, 页面负载( 导航, 或请求, 无
Sec-Fetch-*接受 HTML 信头)获得 下方的来顺页,作为401;其他的都得到一空的401. 也没有设置饼干。 例外是 顶层的页载载所见标记:一个被邀请者,其时数已升起,将直接送到门上(新鲜) 状态饼干和302/_door/signin在它自己签到时,它会立即发出新票,所以 更新时保持沉默。 标记一无所取;携带的取来仍然得到空的401. 401个都携带WWW-Authenticate: Cookie realm="<id>", form-action="/_door/signin", cookie-name="__Host-crv_door"。 。 。 . - 一个例外是空500。 门关了.
每一个反应都带有 X-Robots-Tag: noindex, nofollow, HSTS, , (中文), nosniff, (中文(简体) ), X-Frame-Options: DENY (单位:千美元)
Cache-Control 与 no-store 或者说 private。 。 。 . next 通过对主机进行解析,重新序列化,可以实现语法化
它作为路径和查询,如果它离开源头或持有回击或控制字符,则拒绝它
(单位:千美元)canonicalNext,导出,因此门票发行机构可以运行相同的台阶.
即将来临的一页
没有会议的访问者看到产品自己的域名:产品标记和名称 " 即将来临
很快","现在向被邀请的来宾开放","有邀请函吗? 签名"按钮 /_door/signin 携带
{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}请示的下一位 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}所以签到门前 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}门票会把被邀请者带回他们要求的页面 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}请示
和“参与”链接 <door>/get-involved/?site=<id>。 。 。 .
这是大门自己的HTML,没有带任何网站:一个内线样式表,标记为 data: URI,没有
脚本,没有要求任何地方。 它是在大门开始时建造的 并且是除路外的每一条路的同一个字节
next 它的按钮携带。 它的头是大门的保安头, X-Robots-Tag: noindex, nofollow, (中文(简体) ),
Cache-Control: no-store,而且内容-安全政策允许: default-src 'none'; style-src 'sha256-<its stylesheet>'; img-src data: 和 base-uri, (中文(简体) ), form-action 财务报告和审定财务报表
frame-ancestors 全部 'none'头部得到相同的头部 没有身体。 接下来 prefers-color-scheme,读取于
320px,而每一对相色相会合WCAG AA.
为什么401. 没有会话,任何请求都不会得到2xx,所以漏出检查和任何探测器都可以从一个被锁定的站点得知
单凭地位打开一个。 一台200读作站台本身取自爬行机或升起时显示器,一台503读作一台
废. RFC 9110需要一个401来携带一个 WWW-Authenticate 中,没有注册的方案描述会话
从一个签入的页面取出cookie,所以大门使用所起草的形状精确地表示(草稿-broyer-http-cookie-auth).
浏览器只提示它们所执行的方案, 所以对于这个方案,它们使身体, 浏览器套件证明
在铬、火狐和WebKit中.
其内容来自bin's旗,存储于 gate.config.json 作为 page 并检查捆绑时间:
| 旗帜 | 默认 | 已检查 |
|---|---|---|
--name | 站点编号,资本化 | 1到60个字符,没有控制字符,两端没有空格 |
--mark | 无:名称单独存在 | a 一个 .svg 或者说 .png 导出内部路径(拒绝连接),最多64 KB,内含为基数64 |
--mark-dark | 无: 黑暗方案显示 --mark 轻地砖上 | 作为 --mark; 仅与 --mark |
--accent | #1f2933 | #rrggbb,在灯页上至少显示3:1(#ffffff(中文(简体) ) |
--accent-dark | #d5dbe1 | #rrggbb,在暗页上至少3:1#11161b(中文(简体) ) |
按钮的标签为白色或黑色,以口音上读取较好者为准;两者之一总能达到4.5:1. 这个
标记是网站的文件,每个访客然后都会看到,所以只命名一个要公开的文件:标志,永远不要
门后的东西 如果 Amplify 应用程序的自定义头条也设置了内容-安全政策, Amplify 获胜
或两者均适用;产品的政策允许内衬样式和 data: 图像,所以页面是任意一种方式.
大门只持有公用钥匙,将其所有配置作为数据,并命名为没有产品. 售票员 门和场地登记是门自己的.
图书馆
库条目导出 serve, (中文(简体) ), createStaticServer, (中文(简体) ), runLighthouse 财务报告和审定财务报表 pagesFromSitemap 用于脚本
需要它们进行中, 和门的部分: createGate, (中文(简体) ), startGate, (中文(简体) ), verifyTicket, (中文(简体) ), parseJwks, (中文(简体) ),
canonicalNext, (中文(简体) ), parseGateConfig, (中文(简体) ), bundleDoor和即将来临的一页 comingSoon 财务报告和审定财务报表 parsePageConfig。 。 。 .
这是寄存器中一个有构建的软件包:一个宾箱必须是JavaScript,因为节点拒绝剥去
从下面的文件类型 node_modules。 。 。 . tsc 写入 dist/ 打开 prepack,而门捆 复制门的
从那里整理文件 .