lighthouse 12.6.1 → 12.7.0-dev.20250628

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/cli/test/smokehouse/core-tests.js +2 -0
  2. package/cli/test/smokehouse/frontends/lib.js +0 -2
  3. package/cli/test/smokehouse/frontends/smokehouse-bin.js +1 -3
  4. package/cli/test/smokehouse/lighthouse-runners/cli.js +1 -1
  5. package/cli/test/smokehouse/smokehouse.js +0 -2
  6. package/core/audits/audit.d.ts +7 -0
  7. package/core/audits/audit.js +17 -2
  8. package/core/audits/byte-efficiency/byte-efficiency-audit.js +6 -8
  9. package/core/audits/byte-efficiency/legacy-javascript.js +0 -1
  10. package/core/audits/byte-efficiency/render-blocking-resources.js +1 -1
  11. package/core/audits/deprecations.js +0 -2
  12. package/core/audits/insights/cache-insight.js +2 -1
  13. package/core/audits/insights/cls-culprits-insight.js +6 -7
  14. package/core/audits/insights/{interaction-to-next-paint-insight.d.ts → inp-breakdown-insight.d.ts} +3 -3
  15. package/core/audits/insights/{interaction-to-next-paint-insight.js → inp-breakdown-insight.js} +10 -10
  16. package/core/audits/insights/insight-audit.d.ts +7 -4
  17. package/core/audits/insights/insight-audit.js +48 -7
  18. package/core/audits/insights/lcp-breakdown-insight.d.ts +16 -0
  19. package/core/audits/insights/{lcp-phases-insight.js → lcp-breakdown-insight.js} +19 -19
  20. package/core/audits/insights/modern-http-insight.js +0 -2
  21. package/core/audits/insights/network-dependency-tree-insight.js +85 -8
  22. package/core/audits/insights/render-blocking-insight.js +1 -1
  23. package/core/audits/layout-shifts.js +5 -4
  24. package/core/audits/seo/crawlable-anchors.js +27 -0
  25. package/core/audits/seo/link-text.js +130 -83
  26. package/core/audits/third-party-cookies.js +0 -2
  27. package/core/audits/valid-source-maps.js +0 -2
  28. package/core/computed/js-bundles.js +0 -1
  29. package/core/computed/metrics/cumulative-layout-shift.js +1 -1
  30. package/core/computed/metrics/lantern-metric.js +4 -3
  31. package/core/computed/metrics/timing-summary.js +4 -1
  32. package/core/computed/page-dependency-graph.js +3 -3
  33. package/core/computed/trace-engine-result.js +1 -2
  34. package/core/config/config.js +1 -1
  35. package/core/config/default-config.js +4 -4
  36. package/core/config/experimental-config.js +2 -2
  37. package/core/config/filters.js +7 -0
  38. package/core/config/validation.js +4 -0
  39. package/core/gather/base-artifacts.js +3 -0
  40. package/core/gather/driver/environment.d.ts +6 -0
  41. package/core/gather/driver/environment.js +17 -0
  42. package/core/gather/driver/execution-context.d.ts +3 -1
  43. package/core/gather/driver/execution-context.js +3 -1
  44. package/core/gather/driver/navigation.js +1 -3
  45. package/core/gather/driver/wait-for-condition.js +0 -1
  46. package/core/gather/fetcher.js +0 -2
  47. package/core/gather/gatherers/accessibility.js +1 -1
  48. package/core/gather/gatherers/anchor-elements.js +61 -2
  49. package/core/gather/gatherers/cache-contents.js +0 -2
  50. package/core/gather/gatherers/css-usage.js +3 -1
  51. package/core/gather/gatherers/dobetterweb/doctype.js +0 -2
  52. package/core/gather/gatherers/dobetterweb/domstats.js +1 -1
  53. package/core/gather/gatherers/full-page-screenshot.js +1 -1
  54. package/core/gather/gatherers/image-elements.js +1 -1
  55. package/core/gather/gatherers/inspector-issues.js +1 -1
  56. package/core/gather/gatherers/link-elements.js +1 -1
  57. package/core/gather/gatherers/stacks.js +0 -1
  58. package/core/gather/gatherers/stylesheets.js +3 -1
  59. package/core/gather/gatherers/trace-elements.d.ts +3 -4
  60. package/core/gather/gatherers/trace-elements.js +13 -43
  61. package/core/gather/gatherers/viewport-dimensions.js +0 -2
  62. package/core/index.cjs +0 -1
  63. package/core/index.d.cts +5 -0
  64. package/core/lib/asset-saver.d.ts +1 -1
  65. package/core/lib/asset-saver.js +20 -8
  66. package/core/lib/bf-cache-strings.js +4 -1
  67. package/core/lib/deprecations-strings.d.ts +51 -47
  68. package/core/lib/deprecations-strings.js +14 -8
  69. package/core/lib/i18n/i18n.js +0 -2
  70. package/core/lib/lantern-trace-saver.js +1 -1
  71. package/core/lib/lh-error.js +0 -1
  72. package/core/lib/manifest-parser.js +0 -2
  73. package/core/lib/minify-devtoolslog.js +0 -2
  74. package/core/lib/sentry.d.ts +1 -1
  75. package/core/lib/sentry.js +2 -2
  76. package/core/runner.js +11 -8
  77. package/core/scoring.d.ts +186 -15
  78. package/core/scripts/manual-chrome-launcher.js +0 -1
  79. package/dist/report/bundle.esm.js +14 -12
  80. package/dist/report/flow.js +18 -16
  81. package/dist/report/standalone.js +15 -13
  82. package/eslint.config.mjs +242 -0
  83. package/flow-report/src/common.tsx +1 -0
  84. package/flow-report/src/i18n/i18n.tsx +1 -0
  85. package/flow-report/src/util.ts +2 -0
  86. package/package.json +23 -19
  87. package/readme.md +3 -2
  88. package/report/assets/styles.css +11 -9
  89. package/report/assets/templates.html +1 -1
  90. package/report/generator/file-namer.d.ts +5 -0
  91. package/report/generator/file-namer.js +1 -1
  92. package/report/generator/flow-report-assets.js +1 -1
  93. package/report/generator/report-assets.js +1 -1
  94. package/report/generator/report-generator.js +3 -3
  95. package/report/renderer/api.js +1 -0
  96. package/report/renderer/components.js +2 -2
  97. package/report/renderer/details-renderer.d.ts +5 -0
  98. package/report/renderer/details-renderer.js +35 -3
  99. package/report/renderer/dom.d.ts +2 -0
  100. package/report/renderer/dom.js +6 -0
  101. package/report/renderer/i18n-formatter.js +2 -1
  102. package/report/renderer/performance-category-renderer.js +2 -2
  103. package/report/renderer/report-renderer.js +1 -0
  104. package/report/renderer/report-ui-features.d.ts +1 -0
  105. package/report/renderer/report-ui-features.js +16 -0
  106. package/report/renderer/report-utils.js +3 -2
  107. package/report/renderer/text-encoding.js +0 -2
  108. package/report/renderer/topbar-features.js +1 -1
  109. package/report/types/report-renderer.d.ts +5 -0
  110. package/shared/localization/locales/ar-XB.json +57 -69
  111. package/shared/localization/locales/ar.json +57 -69
  112. package/shared/localization/locales/bg.json +57 -69
  113. package/shared/localization/locales/ca.json +57 -69
  114. package/shared/localization/locales/cs.json +57 -69
  115. package/shared/localization/locales/da.json +57 -69
  116. package/shared/localization/locales/de.json +57 -69
  117. package/shared/localization/locales/el.json +57 -69
  118. package/shared/localization/locales/en-GB.json +57 -69
  119. package/shared/localization/locales/en-US.json +73 -61
  120. package/shared/localization/locales/en-XL.json +73 -61
  121. package/shared/localization/locales/es-419.json +57 -69
  122. package/shared/localization/locales/es.json +56 -68
  123. package/shared/localization/locales/fi.json +57 -69
  124. package/shared/localization/locales/fil.json +57 -69
  125. package/shared/localization/locales/fr.json +57 -69
  126. package/shared/localization/locales/he.json +57 -69
  127. package/shared/localization/locales/hi.json +57 -69
  128. package/shared/localization/locales/hr.json +57 -69
  129. package/shared/localization/locales/hu.json +56 -68
  130. package/shared/localization/locales/id.json +57 -69
  131. package/shared/localization/locales/it.json +56 -68
  132. package/shared/localization/locales/ja.json +57 -69
  133. package/shared/localization/locales/ko.json +57 -69
  134. package/shared/localization/locales/lt.json +57 -69
  135. package/shared/localization/locales/lv.json +57 -69
  136. package/shared/localization/locales/nl.json +57 -69
  137. package/shared/localization/locales/no.json +57 -69
  138. package/shared/localization/locales/pl.json +56 -68
  139. package/shared/localization/locales/pt-PT.json +57 -69
  140. package/shared/localization/locales/pt.json +57 -69
  141. package/shared/localization/locales/ro.json +57 -69
  142. package/shared/localization/locales/ru.json +58 -70
  143. package/shared/localization/locales/sk.json +57 -69
  144. package/shared/localization/locales/sl.json +56 -68
  145. package/shared/localization/locales/sr-Latn.json +57 -69
  146. package/shared/localization/locales/sr.json +57 -69
  147. package/shared/localization/locales/sv.json +57 -69
  148. package/shared/localization/locales/ta.json +57 -69
  149. package/shared/localization/locales/te.json +57 -69
  150. package/shared/localization/locales/th.json +56 -68
  151. package/shared/localization/locales/tr.json +57 -69
  152. package/shared/localization/locales/uk.json +57 -69
  153. package/shared/localization/locales/vi.json +57 -69
  154. package/shared/localization/locales/zh-HK.json +57 -69
  155. package/shared/localization/locales/zh-TW.json +56 -68
  156. package/shared/localization/locales/zh.json +57 -69
  157. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +1 -1
  158. package/types/artifacts.d.ts +8 -1
  159. package/types/internal/test.d.ts +1 -1
  160. package/types/lhr/audit-details.d.ts +13 -3
  161. package/types/lhr/lhr.d.ts +8 -1
  162. package/core/audits/insights/lcp-phases-insight.d.ts +0 -16
@@ -2171,9 +2171,6 @@
2171
2171
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CanRequestURLHTTPContainingNewline": {
2172
2172
  "message": "系統將封鎖網址同時包含已移除的空白 \\(n|r|t) 字元和小於字元 (<) 的資源要求。請從元素屬性值等位置移除換行符號,並編碼小於字元,以便載入這些資源。"
2173
2173
  },
2174
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CharsetAutoDetectionISO2022JP": {
2175
- "message": "自動偵測 ISO-2022-JP 字元設定的功能已淘汰,並即將停用。請在「內容類型」標題中或使用中繼標籤指明字元設定 (https://developer.mozilla.org/en-US/docs/Glossary/Character_encoding)。"
2176
- },
2177
2174
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesConnectionInfo": {
2178
2175
  "message": "chrome.loadTimes() 已淘汰,請改用標準化 API:Navigation Timing 2。"
2179
2176
  },
@@ -2195,9 +2192,6 @@
2195
2192
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowConfirm": {
2196
2193
  "message": "從跨來源 iframe 觸發 window.confirm 的功能已淘汰,並將會在日後移除。"
2197
2194
  },
2198
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DOMMutationEvents": {
2199
- "message": "DOM 變更事件 (包括 DOMSubtreeModified、DOMNodeInserted、DOMNodeRemoved、DOMNodeRemovedFromDocument、DOMNodeInsertedIntoDocument 和 DOMCharacterDataModified) 已淘汰 (https://w3c.github.io/uievents/#legacy-event-types),並將於日後移除。請改用 MutationObserver。"
2200
- },
2201
2195
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
2202
2196
  "message": "SVGUseElement 不再支援「data: 網址」,並將於日後移除。"
2203
2197
  },
@@ -2327,6 +2321,9 @@
2327
2321
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
2328
2322
  "message": "擴充程式應選擇接受跨來源隔離功能,以繼續使用 SharedArrayBuffer。詳情請參閱 https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/。"
2329
2323
  },
2324
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
2325
+ "message": "GPUAdapter isFallbackAdapter 屬性已淘汰,請改用 GPUAdapterInfo isFallbackAdapter 屬性。"
2326
+ },
2330
2327
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
2331
2328
  "message": "XMLHttpRequest 中的 JSON 回應不支援 UTF-16。"
2332
2329
  },
@@ -2339,9 +2336,6 @@
2339
2336
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
2340
2337
  "message": "當元素在無使用者互動下移動,就會出現版面配置轉移。請[調查版面配置轉移的原因](https://web.dev/articles/optimize-cls),例如隨頁面載入有元素加入、移除或字型變更。"
2341
2338
  },
2342
- "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | fontRequest": {
2343
- "message": "字型要求"
2344
- },
2345
2339
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
2346
2340
  "message": "已插入 iframe"
2347
2341
  },
@@ -2360,9 +2354,6 @@
2360
2354
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
2361
2355
  "message": "版面配置轉移的主要原因"
2362
2356
  },
2363
- "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImages": {
2364
- "message": "未設定大小的圖片"
2365
- },
2366
2357
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
2367
2358
  "message": "最差的叢集"
2368
2359
  },
@@ -2414,12 +2405,21 @@
2414
2405
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
2415
2406
  "message": "首個網絡要求至關重要。避免重新導向、確保伺服器快速回應,並啟用文字壓縮功能,都有助縮短延遲時間。"
2416
2407
  },
2408
+ "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedRedirects": {
2409
+ "message": "有重新導向 ({PH1} 次重新導向 +{PH2})"
2410
+ },
2411
+ "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
2412
+ "message": "伺服器回應慢 (已觀察 {PH1}) "
2413
+ },
2417
2414
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
2418
2415
  "message": "未套用任何壓縮"
2419
2416
  },
2420
2417
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingRedirects": {
2421
2418
  "message": "避免重新導向"
2422
2419
  },
2420
+ "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
2421
+ "message": "伺服器回應快 (已觀察 {PH1}) "
2422
+ },
2423
2423
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
2424
2424
  "message": "套用文字壓縮"
2425
2425
  },
@@ -2510,30 +2510,6 @@
2510
2510
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
2511
2511
  "message": "使用影片格式而非 GIF,可以縮減動畫內容的下載大小。"
2512
2512
  },
2513
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
2514
- "message": "由最長的階段開始調查,[盡量縮短延遲時間](https://web.dev/articles/optimize-inp#optimize_interactions)。要減少處理時長,建議[優化主要執行緒成本](https://web.dev/articles/optimize-long-tasks) (通常為 JavaScript)。"
2515
- },
2516
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | duration": {
2517
- "message": "時間長度"
2518
- },
2519
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | inputDelay": {
2520
- "message": "輸入延遲"
2521
- },
2522
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | noInteractions": {
2523
- "message": "未能偵測到互動"
2524
- },
2525
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | phase": {
2526
- "message": "階段"
2527
- },
2528
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | presentationDelay": {
2529
- "message": "簡報顯示延遲"
2530
- },
2531
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | processingDuration": {
2532
- "message": "處理時間長度"
2533
- },
2534
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
2535
- "message": "按階段劃分 INP"
2536
- },
2537
2513
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
2538
2514
  "message": "如要提升 LCP,請讓 LCP 圖片立即[顯示](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay)在 HTML 中,[避免延遲載入](https://web.dev/articles/lcp-lazy-loading)"
2539
2515
  },
@@ -2561,36 +2537,6 @@
2561
2537
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
2562
2538
  "message": "LCP 要求探索"
2563
2539
  },
2564
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
2565
- "message": "每個[階段都有特定的改善策略](https://web.dev/articles/optimize-lcp#lcp-breakdown)。理想狀態下,大部分的 LCP 時間應該用於載入資源,而非延遲。"
2566
- },
2567
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | duration": {
2568
- "message": "時間長度"
2569
- },
2570
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | elementRenderDelay": {
2571
- "message": "元素輸出延遲"
2572
- },
2573
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | fieldDuration": {
2574
- "message": "實際資料的第 75 個百分位數"
2575
- },
2576
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | noLcp": {
2577
- "message": "未能偵測到 LCP"
2578
- },
2579
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | phase": {
2580
- "message": "階段"
2581
- },
2582
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDelay": {
2583
- "message": "資源載入延遲"
2584
- },
2585
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDuration": {
2586
- "message": "資源載入時長"
2587
- },
2588
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | timeToFirstByte": {
2589
- "message": "首個字節時間"
2590
- },
2591
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
2592
- "message": "按階段劃分 LCP"
2593
- },
2594
2540
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
2595
2541
  "message": "指令碼"
2596
2542
  },
@@ -2598,7 +2544,7 @@
2598
2544
  "message": "浪費的位元組數目"
2599
2545
  },
2600
2546
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | description": {
2601
- "message": "Polyfill 和轉換可讓舊版瀏覽器使用新版 JavaScript 的功能。不過,有很多 Polyfill 和轉換都不是新型瀏覽器的必要項目。除非你認為必須支援舊版瀏覽器,否則請考慮將 JavaScript 建立流程改為不轉譯[基準](https://web.dev/articles/baseline-and-polyfills)功能。[瞭解為何大部分網站無需轉譯也能部署 ES6+ 程式碼](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)"
2547
+ "message": "Polyfill 和轉換可讓較舊版本的瀏覽器使用新版 JavaScript 的功能。不過,大部分並非新型瀏覽器的必要項目。除非你認為必須支援較舊版本的瀏覽器,否則請考慮將 JavaScript 建立流程改為不轉譯[基準](https://web.dev/articles/baseline-and-polyfills)功能。[瞭解為何大部分網站無需轉譯也能部署 ES6+ 程式碼](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)"
2602
2548
  },
2603
2549
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | title": {
2604
2550
  "message": "舊版 JavaScript"
@@ -2618,23 +2564,65 @@
2618
2564
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | title": {
2619
2565
  "message": "新式 HTTP"
2620
2566
  },
2567
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnOrigin": {
2568
+ "message": "來源"
2569
+ },
2570
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnRequest": {
2571
+ "message": "要求"
2572
+ },
2573
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnSource": {
2574
+ "message": "來源"
2575
+ },
2576
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnTime": {
2577
+ "message": "時間"
2578
+ },
2579
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnWastedMs": {
2580
+ "message": "估計節省的 LCP"
2581
+ },
2582
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | crossoriginWarning": {
2583
+ "message": "未使用預先連結。請檢查 crossorigin 屬性的設定是否正確。"
2584
+ },
2621
2585
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | description": {
2622
2586
  "message": "如要[避免鏈結關鍵要求](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains),你可以縮短鏈結長度、縮減下載資源的大小或延遲下載不必要資源,以提高頁面載入速度。"
2623
2587
  },
2588
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
2589
+ "message": "為最重要的來源加入[預先連結](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/)提示,但嘗試使用不多於 4 個。"
2590
+ },
2591
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
2592
+ "message": "預先連結的候選來源"
2593
+ },
2624
2594
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | maxCriticalPathLatency": {
2625
2595
  "message": "關鍵路徑延遲時間上限:"
2626
2596
  },
2627
2597
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noNetworkDependencyTree": {
2628
2598
  "message": "網絡依附組件沒有影響任何輸出工作"
2629
2599
  },
2600
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectCandidates": {
2601
+ "message": "沒有其他適合預先連結的候選來源"
2602
+ },
2603
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectOrigins": {
2604
+ "message": "沒有預先連結的來源"
2605
+ },
2606
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableDescription": {
2607
+ "message": "[預先連結](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/)提示可協助瀏覽器在頁面載入的較早階段建立連結,節省為該來源提出首項要求的時間。以下是頁面預先連結的來源。"
2608
+ },
2609
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableTitle": {
2610
+ "message": "預先連結的來源"
2611
+ },
2630
2612
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | title": {
2631
2613
  "message": "網絡依附組件樹狀結構"
2632
2614
  },
2615
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | tooManyPreconnectLinksWarning": {
2616
+ "message": "找到超過 4 個preconnect連結。這些連結應盡量少用,並只用於最重要的來源。"
2617
+ },
2618
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | unusedWarning": {
2619
+ "message": "未使用預先連結。請只為頁面可能要求的來源使用preconnect。"
2620
+ },
2633
2621
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | warningDescription": {
2634
2622
  "message": "如要避免鏈結關鍵要求,你可以縮短鏈結長度、縮減下載資源的大小或延遲下載不必要資源,以提高頁面載入速度。"
2635
2623
  },
2636
2624
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
2637
- "message": "要求會封鎖頁面的初始輸出,可能會導致 LCP 延遲。[延遲或內嵌](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/)可以將這些網絡要求移離關鍵路徑。"
2625
+ "message": "要求會封鎖頁面的初始輸出,可能會導致 LCP 延遲。[延遲或內嵌](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources)可以將這些網絡要求移離關鍵路徑。"
2638
2626
  },
2639
2627
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | duration": {
2640
2628
  "message": "時間長度"
@@ -2682,7 +2670,7 @@
2682
2670
  "message": "傳輸大小"
2683
2671
  },
2684
2672
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
2685
- "message": "第三方程式碼可能會嚴重影響載入效能。建議[減少第三方程式碼和延遲載入](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/),優先載入網頁內容。"
2673
+ "message": "第三方程式碼可能會嚴重影響載入效能。建議[減少第三方程式碼和延遲載入](https://web.dev/articles/optimizing-content-efficiency-loading-third-party-javascript/),優先載入網頁內容。"
2686
2674
  },
2687
2675
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | noThirdParties": {
2688
2676
  "message": "找不到第三方內容"
@@ -2171,9 +2171,6 @@
2171
2171
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CanRequestURLHTTPContainingNewline": {
2172
2172
  "message": "如果資源要求網址中同時包含已移除的 \\(n|r|t) 字元和小於字元 (<),系統會予以封鎖。請從元素屬性值等位置移除換行符號,並編碼小於字元,以便載入這些資源。"
2173
2173
  },
2174
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CharsetAutoDetectionISO2022JP": {
2175
- "message": "自動偵測 ISO-2022-JP 字元集的功能已淘汰,近期即將停用。請在「Content Type」標頭,或是使用中繼標記 (https://developer.mozilla.org/en-US/docs/Glossary/Character_encoding),指定字元集。"
2176
- },
2177
2174
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | ChromeLoadTimesConnectionInfo": {
2178
2175
  "message": "chrome.loadTimes() 已淘汰,請改用標準化 API:Navigation Timing 2。"
2179
2176
  },
@@ -2195,9 +2192,6 @@
2195
2192
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | CrossOriginWindowConfirm": {
2196
2193
  "message": "從跨來源 iframe 觸發 window.confirm 的功能已淘汰,並將在之後移除。"
2197
2194
  },
2198
- "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DOMMutationEvents": {
2199
- "message": "DOM 變更事件 (包括 DOMSubtreeModified、DOMNodeInserted、DOMNodeRemoved、DOMNodeRemovedFromDocument、DOMNodeInsertedIntoDocument 和 DOMCharacterDataModified) 已淘汰 (https://w3c.github.io/uievents/#legacy-event-types),並將於日後移除。請改用 MutationObserver。"
2200
- },
2201
2195
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | DataUrlInSvgUse": {
2202
2196
  "message": "SVGUseElement 不再支援「data: 網址」,並將於日後移除。"
2203
2197
  },
@@ -2327,6 +2321,9 @@
2327
2321
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | V8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
2328
2322
  "message": "擴充功能應選擇啟用跨來源隔離功能,以便繼續使用 SharedArrayBuffer。詳情請參閱 https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/。"
2329
2323
  },
2324
+ "node_modules/@paulirish/trace_engine/generated/Deprecation.js | WebGPUAdapterIsFallbackAdapter": {
2325
+ "message": "GPUAdapter 的 isFallbackAdapter 屬性已淘汰,請改用 GPUAdapterInfo 的 isFallbackAdapter 屬性。"
2326
+ },
2330
2327
  "node_modules/@paulirish/trace_engine/generated/Deprecation.js | XHRJSONEncodingDetection": {
2331
2328
  "message": "XMLHttpRequest 中的 JSON 回應不支援 UTF-16"
2332
2329
  },
@@ -2339,9 +2336,6 @@
2339
2336
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
2340
2337
  "message": "版面配置位移是指元素在使用者未進行任何互動時移動。[調查版面配置位移的原因](https://web.dev/articles/optimize-cls),例如在網頁載入期間新增、移除元素,或變更字型。"
2341
2338
  },
2342
- "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | fontRequest": {
2343
- "message": "字型要求"
2344
- },
2345
2339
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | injectedIframe": {
2346
2340
  "message": "插入了 iframe"
2347
2341
  },
@@ -2360,9 +2354,6 @@
2360
2354
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | topCulprits": {
2361
2355
  "message": "版面配置位移的常見主因"
2362
2356
  },
2363
- "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | unsizedImages": {
2364
- "message": "原寸圖片"
2365
- },
2366
2357
  "node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | worstCluster": {
2367
2358
  "message": "最嚴重的叢集"
2368
2359
  },
@@ -2414,12 +2405,21 @@
2414
2405
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
2415
2406
  "message": "第一個網路要求最為重要。避免重新導向、確保伺服器快速回應,並啟用文字壓縮功能,即可縮短延遲時間。"
2416
2407
  },
2408
+ "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedRedirects": {
2409
+ "message": "有重新導向 ({PH1} 次重新導向,+{PH2})"
2410
+ },
2411
+ "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedServerResponseTime": {
2412
+ "message": "伺服器回應緩慢 (觀測結果:{PH1}) "
2413
+ },
2417
2414
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | failedTextCompression": {
2418
2415
  "message": "未套用壓縮功能"
2419
2416
  },
2420
2417
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingRedirects": {
2421
2418
  "message": "避免重新導向"
2422
2419
  },
2420
+ "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingServerResponseTime": {
2421
+ "message": "伺服器回應迅速 (觀測結果:{PH1}) "
2422
+ },
2423
2423
  "node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | passingTextCompression": {
2424
2424
  "message": "套用文字壓縮"
2425
2425
  },
@@ -2510,30 +2510,6 @@
2510
2510
  "node_modules/@paulirish/trace_engine/models/trace/insights/ImageDelivery.js | useVideoFormat": {
2511
2511
  "message": "建議使用影片格式 (而非 GIF),可縮減動畫內容的下載大小。"
2512
2512
  },
2513
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
2514
- "message": "從最長的階段開始調查,[可盡量縮短延遲時間](https://web.dev/articles/optimize-inp#optimize_interactions)。如要縮短處理時間,請[盡量降低主執行緒的成本](https://web.dev/articles/optimize-long-tasks),通常是針對 JavaScript。"
2515
- },
2516
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | duration": {
2517
- "message": "時間長度"
2518
- },
2519
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | inputDelay": {
2520
- "message": "輸入延遲"
2521
- },
2522
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | noInteractions": {
2523
- "message": "未偵測到任何互動"
2524
- },
2525
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | phase": {
2526
- "message": "階段"
2527
- },
2528
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | presentationDelay": {
2529
- "message": "簡報顯示延遲"
2530
- },
2531
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | processingDuration": {
2532
- "message": "處理時間"
2533
- },
2534
- "node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
2535
- "message": "依階段顯示 INP"
2536
- },
2537
2513
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
2538
2514
  "message": "如要提升 LCP,請讓 LCP 圖片立即[顯示](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay)在 HTML 中,[避免延遲載入](https://web.dev/articles/lcp-lazy-loading)"
2539
2515
  },
@@ -2561,36 +2537,6 @@
2561
2537
  "node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
2562
2538
  "message": "LCP 要求探索"
2563
2539
  },
2564
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
2565
- "message": "每個[階段都有特定改善策略](https://web.dev/articles/optimize-lcp#lcp-breakdown)。理想狀態下,大部分的 LCP 時間應該用於載入資源,而非延遲。"
2566
- },
2567
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | duration": {
2568
- "message": "時間長度"
2569
- },
2570
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | elementRenderDelay": {
2571
- "message": "元素轉譯延遲"
2572
- },
2573
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | fieldDuration": {
2574
- "message": "實際使用者資料的第 75 個百分位數"
2575
- },
2576
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | noLcp": {
2577
- "message": "未偵測到 LCP"
2578
- },
2579
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | phase": {
2580
- "message": "階段"
2581
- },
2582
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDelay": {
2583
- "message": "資源載入延遲"
2584
- },
2585
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | resourceLoadDuration": {
2586
- "message": "資源載入時長"
2587
- },
2588
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | timeToFirstByte": {
2589
- "message": "Time to First Byte"
2590
- },
2591
- "node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
2592
- "message": "依階段顯示 LCP"
2593
- },
2594
2540
  "node_modules/@paulirish/trace_engine/models/trace/insights/LegacyJavaScript.js | columnScript": {
2595
2541
  "message": "指令碼"
2596
2542
  },
@@ -2618,23 +2564,65 @@
2618
2564
  "node_modules/@paulirish/trace_engine/models/trace/insights/ModernHTTP.js | title": {
2619
2565
  "message": "新式 HTTP"
2620
2566
  },
2567
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnOrigin": {
2568
+ "message": "來源"
2569
+ },
2570
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnRequest": {
2571
+ "message": "要求"
2572
+ },
2573
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnSource": {
2574
+ "message": "來源"
2575
+ },
2576
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnTime": {
2577
+ "message": "時間"
2578
+ },
2579
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | columnWastedMs": {
2580
+ "message": "預估 LCP 節省毫秒數"
2581
+ },
2582
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | crossoriginWarning": {
2583
+ "message": "這是未使用的預先連結。請檢查 crossorigin 屬性的設定是否正確。"
2584
+ },
2621
2585
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | description": {
2622
2586
  "message": "如要[避免鏈結關鍵要求](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains),可以縮短鏈結長度、降低資源的下載大小或延後下載非必要資源,提高頁面載入速度。"
2623
2587
  },
2588
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableDescription": {
2589
+ "message": "請為最重要的來源新增 [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) 提示,但盡量不要超過 4 個。"
2590
+ },
2591
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | estSavingTableTitle": {
2592
+ "message": "預先連結候選來源"
2593
+ },
2624
2594
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | maxCriticalPathLatency": {
2625
2595
  "message": "關鍵路徑延遲時間上限:"
2626
2596
  },
2627
2597
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noNetworkDependencyTree": {
2628
2598
  "message": "網路依附元件未影響任何算繪工作"
2629
2599
  },
2600
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectCandidates": {
2601
+ "message": "沒有其他適合的預先連結候選來源"
2602
+ },
2603
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | noPreconnectOrigins": {
2604
+ "message": "未預先連結任何來源"
2605
+ },
2606
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableDescription": {
2607
+ "message": "[preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) 提示可協助瀏覽器在載入網頁時提早建立連結,因此首次向該來源發出要求時可節省時間。以下是網頁預先連結的來源。"
2608
+ },
2609
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | preconnectOriginsTableTitle": {
2610
+ "message": "預先連結的來源"
2611
+ },
2630
2612
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | title": {
2631
2613
  "message": "網路依附元件樹狀結構"
2632
2614
  },
2615
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | tooManyPreconnectLinksWarning": {
2616
+ "message": "找到超過 4 個「preconnect」連結。請謹慎使用這些連結,僅用於最重要的來源。"
2617
+ },
2618
+ "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | unusedWarning": {
2619
+ "message": "這是未使用的預先連結。建議將 preconnect 僅用於網頁可能會要求的來源。"
2620
+ },
2633
2621
  "node_modules/@paulirish/trace_engine/models/trace/insights/NetworkDependencyTree.js | warningDescription": {
2634
2622
  "message": "如要避免鏈結關鍵要求,可以縮短鏈結長度、降低資源的下載大小或延後下載非必要資源,提高頁面載入速度。"
2635
2623
  },
2636
2624
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
2637
- "message": "要求會阻礙網頁的初始轉譯作業,進而導致 LCP 延遲。你可以透過[延後或內嵌](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/)的方式,將這些網路要求移出關鍵路徑。"
2625
+ "message": "要求會阻礙網頁的初始轉譯作業,進而導致 LCP 延遲。你可以透過[延後或內嵌](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources)的方式,將這些網路要求移出關鍵路徑。"
2638
2626
  },
2639
2627
  "node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | duration": {
2640
2628
  "message": "時間長度"
@@ -2682,7 +2670,7 @@
2682
2670
  "message": "傳輸大小"
2683
2671
  },
2684
2672
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
2685
- "message": "第三方程式碼可能會嚴重影響載入效能。請[減少第三方程式碼並延遲載入](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/),優先載入網頁內容。"
2673
+ "message": "第三方程式碼可能會嚴重影響載入效能。請[減少第三方程式碼並延遲載入](https://web.dev/articles/optimizing-content-efficiency-loading-third-party-javascript/),優先載入網頁內容。"
2686
2674
  },
2687
2675
  "node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | noThirdParties": {
2688
2676
  "message": "找不到任何第三方"