首页 > 其他分享 >关于 Angular 工程文件 angular.json 里的 inlineCritical 属性

关于 Angular 工程文件 angular.json 里的 inlineCritical 属性

时间:2023-01-19 23:46:22浏览次数:32  
标签:FCP yarn custom json inlineCritical file Angular

Angular 工作区根级别的 angular.json 文件提供工作区范围和项目特定的默认配置。这些用于 Angular CLI 提供的构建和开发工具。 配置中给出的路径值是相对于根工作区目录的。

其中有个参数:inlineCritical,用于提取和内联关键 CSS 定义以改进 First Contentful Paint,默认值为 true.

First Contentful Paint (FCP) 是 Lighthouse 报告的性能部分跟踪的六个指标之一。每个指标都捕获页面加载速度的某些方面。

在 Lighthouse 采集的指标里,First Contentful Paint 的单位是秒。

FCP 测量在用户导航到 Web 页面后浏览器呈现第一段 DOM 内容所花费的时间。

页面上的图像、非白色 <canvas> 元素和 SVG 被视为 DOM 内容; 不包括 iframe 内的任何内容。

某个网站的 FCP 分数是该网页的 FCP 时间与 FCP 数据库中真实网站的 FCP 时间的比较,基于 HTTP 存档中的数据。

例如,在第 99 个百分位数中执行的站点在大约 1.2 秒内呈现 FCP。 如果某网站的 FCP 为 1.2 秒,则其 FCP 分数为 99。

FCP 在 1.8 秒之内,显示为绿色;1.8 秒到 3 秒之内,显示为橙色,超过 3 秒显示为红色,被判定为慢速。

inlineCritical 设置对 Spartacus 的影响:

在 Angular 12 里会导致 Spartacus SSR 在加载完整样式后闪烁,出现 flicker 现象。

考虑下列配置:projects/storefrontapp/server.ts

 server.engine(
    'html',
    ngExpressEngine({
      bootstrap: AppServerModule,
      // disable for SSR
      inlineCriticalCss: false,
    })
  );

问题重现步骤

  1. yarn build:libs && yarn build
  2. yarn build:ssr
  3. yarn serve:ssr:dev

打开 Spartacus 并刷新几次 - 就可以注意到 SAP 大的 Logo 出现 flicker.

从 Chrome 开发者工具里能看到错误日志:

Unable to locate stylesheet: /Users/nikolazaric/dev/spartacus/ssr-inline-css-on-prod/dist/storefrontapp/https:/use.fontawesome.com/releases/v5.8.1/css/all.css
1 rules skipped due to selector errors:
.custom-file-input:lang(en)~.custom-file-label -> unmatched pseudo-class :lang
1 rules skipped due to selector errors:
.custom-file-input:lang(en)~.custom-file-label -> unmatched pse

升级到 Angular 14 后问题消失。

标签:FCP,yarn,custom,json,inlineCritical,file,Angular
From: https://www.cnblogs.com/sap-jerry/p/17062305.html

相关文章

  • python提取json中键值
    0X00 样例数据:{'d':{'__type':'st','YX':"<tableid='tabyxlist'><tr><tdclass='tdth'>院校名称</td><tdclass='tdth'>计划数</td></tr><trid=......
  • go json
    转化为json格式funcMarshal(vinterface{})([]byte,error)//将v(一般为结构体)转化为json格式//json.gopackagemainimport("encoding/json""fm......
  • 坑!你不知道的JSON解析
    背景最近在对接国内的外卖平台,代码啥的正常开发、测试、上线都没发现什么异常的。突然,最近有运维反馈说漏了单据,一开始我以为是外卖平台那边接口异常,拉单延迟导致的,就没怎......
  • JSON传递bool类型数据的处理方式
    ajax中使用json传递数据时,其它数据类型都不是问题,但是如果服务器端生成的JSON中有bool类型的数据时,到客户端解析时出现了小小的问题,总结如下:服务器返回的JSON为:{"TypeID":[......
  • 利用数组特性便利json对象中属性
    在使用ajax编程时,有时候服务器端返回的json的属性是不确定的,这样在客户端使用时,就没有办法使用json对象的属性名称来访问属性值。 我们可以将json对象看作是一个字典数组,具......
  • MeterSphere 接口自动化 CSV 整合 JSON 文件
    在 ToB系统的业务场景中,经常有厂家需要将原始JSON数据,用于请求体传参,或者响应体对比等业务场景。对应Metersphere中接口自动化,CSV数据驱动数据包含JSON结构内容,用......
  • Angular component 没有constructor如何调用service
    Addthiscodein app.module.tsimport{Injector,NgModule}from'@angular/core';exportletAppInjector:Injector;exportclassAppModule{constru......
  • 前端框架对比总结(表格):React、Angular、Vue.js(国产)等
    前端框架对比前端框架优点缺点ReactReact是由Facebook开发和创建的开源框架。根据StackOverflowDeveloper的2021年调查,该框架是2022年最好的UI......
  • 怎样让json格式文本以JSON格式化
    在Linux命令行中格式化输出json原创 TIAP TIAP 2022-12-3007:35 发表于山东收录于合集#Linux158个TIAP技术分享,经验交流,职业生涯探讨。120篇原创......
  • json工具包
    CREATEORREPLACEPACKAGEBODYcux_json_utilISPROCEDUREcreate_clob(clob_locINOUTNOCOPYCLOB)ISBEGINdbms_lob.createtemporary(lob_loc=>clob_loc,......