diff --git a/lighthouse-core/lib/stack-packs.js b/lighthouse-core/lib/stack-packs.js index 03c7e01ea018..69463fe2ecfe 100644 --- a/lighthouse-core/lib/stack-packs.js +++ b/lighthouse-core/lib/stack-packs.js @@ -19,6 +19,11 @@ const stackPacksToInclude = [ packId: 'wordpress', requiredStacks: ['js:wordpress'], }, + // waiting for https://github.com/johnmichel/Library-Detector-for-Chrome/pull/193 + // { + // packId: 'ezoic', + // requiredStacks: ['js:ezoic'], + // }, { packId: 'drupal', requiredStacks: ['js:drupal'], diff --git a/lighthouse-core/test/lib/stack-packs-test.js b/lighthouse-core/test/lib/stack-packs-test.js index 39a2ab42b829..9d4ab26b139c 100644 --- a/lighthouse-core/test/lib/stack-packs-test.js +++ b/lighthouse-core/test/lib/stack-packs-test.js @@ -22,7 +22,8 @@ describe('stack-packs lib', () => { const result = lighthouseStackPacksDep .filter(p => !stackPacksLib.stackPacksToInclude.find(p2 => p2.packId === p.id)) .map(p => p.id); - expect(result).toEqual([]); + // TODO: waiting for this + expect(result).toEqual(['ezoic']); }); }); @@ -30,18 +31,19 @@ describe('stack-packs lib', () => { describe('lighthouse-stack-packs dep', () => { it('snapshot packs', () => { expect(lighthouseStackPacksDep.map((p) => p.id)).toMatchInlineSnapshot(` - Array [ - "amp", - "angular", - "drupal", - "joomla", - "magento", - "next.js", - "octobercms", - "react", - "wordpress", - ] - `); +Array [ + "amp", + "angular", + "drupal", + "ezoic", + "joomla", + "magento", + "next.js", + "octobercms", + "react", + "wordpress", +] +`); }); it('snapshot keys for each pack', () => { @@ -50,152 +52,171 @@ describe('lighthouse-stack-packs dep', () => { }); // Keys should only be added, not removed. expect(result).toMatchInlineSnapshot(` - Array [ - Object { - "id": "amp", - "keys": Array [ - "modern-image-formats", - "offscreen-images", - "render-blocking-resources", - "unminified-css", - "efficient-animated-content", - "uses-responsive-images", - ], - }, - Object { - "id": "angular", - "keys": Array [ - "total-byte-weight", - "unminified-warning", - "unused-javascript", - "uses-responsive-images", - "uses-rel-preload", - "dom-size", - ], - }, - Object { - "id": "drupal", - "keys": Array [ - "unused-css-rules", - "unused-javascript", - "modern-image-formats", - "offscreen-images", - "total-byte-weight", - "render-blocking-resources", - "unminified-css", - "unminified-javascript", - "efficient-animated-content", - "uses-long-cache-ttl", - "uses-optimized-images", - "uses-responsive-images", - "server-response-time", - "uses-rel-preconnect", - "font-display", - ], - }, - Object { - "id": "joomla", - "keys": Array [ - "unused-css-rules", - "modern-image-formats", - "offscreen-images", - "total-byte-weight", - "render-blocking-resources", - "unminified-css", - "unminified-javascript", - "efficient-animated-content", - "unused-javascript", - "uses-long-cache-ttl", - "uses-optimized-images", - "uses-text-compression", - "uses-responsive-images", - "server-response-time", - ], - }, - Object { - "id": "magento", - "keys": Array [ - "modern-image-formats", - "offscreen-images", - "disable-bundling", - "unminified-css", - "unminified-javascript", - "unused-javascript", - "uses-optimized-images", - "server-response-time", - "uses-rel-preconnect", - "uses-rel-preload", - "critical-request-chains", - "font-display", - ], - }, - Object { - "id": "next.js", - "keys": Array [ - "unused-css-rules", - "modern-image-formats", - "offscreen-images", - "render-blocking-resources", - "unused-javascript", - "uses-long-cache-ttl", - "uses-optimized-images", - "uses-text-compression", - "uses-responsive-images", - "user-timings", - ], - }, - Object { - "id": "octobercms", - "keys": Array [ - "unused-css-rules", - "modern-image-formats", - "offscreen-images", - "total-byte-weight", - "render-blocking-resources", - "unminified-css", - "unminified-javascript", - "efficient-animated-content", - "unused-javascript", - "uses-long-cache-ttl", - "uses-optimized-images", - "uses-text-compression", - "uses-responsive-images", - "server-response-time", - ], - }, - Object { - "id": "react", - "keys": Array [ - "unminified-css", - "unminified-javascript", - "unused-javascript", - "server-response-time", - "redirects", - "user-timings", - "dom-size", - ], - }, - Object { - "id": "wordpress", - "keys": Array [ - "unused-css-rules", - "modern-image-formats", - "offscreen-images", - "total-byte-weight", - "render-blocking-resources", - "unminified-css", - "unminified-javascript", - "efficient-animated-content", - "unused-javascript", - "uses-long-cache-ttl", - "uses-optimized-images", - "uses-text-compression", - "uses-responsive-images", - "server-response-time", - ], - }, - ] - `); +Array [ + Object { + "id": "amp", + "keys": Array [ + "modern-image-formats", + "offscreen-images", + "render-blocking-resources", + "unminified-css", + "efficient-animated-content", + "uses-responsive-images", + ], + }, + Object { + "id": "angular", + "keys": Array [ + "total-byte-weight", + "unminified-warning", + "unused-javascript", + "uses-responsive-images", + "uses-rel-preload", + "dom-size", + ], + }, + Object { + "id": "drupal", + "keys": Array [ + "unused-css-rules", + "unused-javascript", + "modern-image-formats", + "offscreen-images", + "total-byte-weight", + "render-blocking-resources", + "unminified-css", + "unminified-javascript", + "efficient-animated-content", + "uses-long-cache-ttl", + "uses-optimized-images", + "uses-responsive-images", + "server-response-time", + "uses-rel-preconnect", + "font-display", + ], + }, + Object { + "id": "ezoic", + "keys": Array [ + "unused-css-rules", + "modern-image-formats", + "offscreen-images", + "render-blocking-resources", + "unminified-css", + "unminified-javascript", + "uses-long-cache-ttl", + "uses-optimized-images", + "uses-responsive-images", + "server-response-time", + "uses-rel-preconnect", + "uses-rel-preload", + "font-display", + ], + }, + Object { + "id": "joomla", + "keys": Array [ + "unused-css-rules", + "modern-image-formats", + "offscreen-images", + "total-byte-weight", + "render-blocking-resources", + "unminified-css", + "unminified-javascript", + "efficient-animated-content", + "unused-javascript", + "uses-long-cache-ttl", + "uses-optimized-images", + "uses-text-compression", + "uses-responsive-images", + "server-response-time", + ], + }, + Object { + "id": "magento", + "keys": Array [ + "modern-image-formats", + "offscreen-images", + "disable-bundling", + "unminified-css", + "unminified-javascript", + "unused-javascript", + "uses-optimized-images", + "server-response-time", + "uses-rel-preconnect", + "uses-rel-preload", + "critical-request-chains", + "font-display", + ], + }, + Object { + "id": "next.js", + "keys": Array [ + "unused-css-rules", + "modern-image-formats", + "offscreen-images", + "render-blocking-resources", + "unused-javascript", + "uses-long-cache-ttl", + "uses-optimized-images", + "uses-text-compression", + "uses-responsive-images", + "user-timings", + "preload-lcp-image", + ], + }, + Object { + "id": "octobercms", + "keys": Array [ + "unused-css-rules", + "modern-image-formats", + "offscreen-images", + "total-byte-weight", + "render-blocking-resources", + "unminified-css", + "unminified-javascript", + "efficient-animated-content", + "unused-javascript", + "uses-long-cache-ttl", + "uses-optimized-images", + "uses-text-compression", + "uses-responsive-images", + "server-response-time", + ], + }, + Object { + "id": "react", + "keys": Array [ + "unminified-css", + "unminified-javascript", + "unused-javascript", + "server-response-time", + "redirects", + "user-timings", + "dom-size", + ], + }, + Object { + "id": "wordpress", + "keys": Array [ + "unused-css-rules", + "modern-image-formats", + "offscreen-images", + "total-byte-weight", + "render-blocking-resources", + "unminified-css", + "unminified-javascript", + "efficient-animated-content", + "unused-javascript", + "uses-long-cache-ttl", + "uses-optimized-images", + "uses-text-compression", + "uses-responsive-images", + "server-response-time", + ], + }, +] +`); }); // Keys for plugin audits are allowed in this package. diff --git a/lighthouse-core/test/results/sample_v2.json b/lighthouse-core/test/results/sample_v2.json index 17bb54286024..5c0e2a67ffa5 100644 --- a/lighthouse-core/test/results/sample_v2.json +++ b/lighthouse-core/test/results/sample_v2.json @@ -6828,7 +6828,7 @@ "title": "WordPress", "iconDataURL": "data:image/svg+xml,%3Csvg viewBox=\"0 0 122.5 122.5\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cg fill=\"%232f3439\"%3E%3Cpath d=\"M8.7 61.3c0 20.8 12.1 38.7 29.6 47.3l-25-68.7c-3 6.5-4.6 13.7-4.6 21.4zM96.7 58.6c0-6.5-2.3-11-4.3-14.5-2.7-4.3-5.2-8-5.2-12.3 0-4.8 3.7-9.3 8.9-9.3h.7a52.4 52.4 0 0 0-79.4 9.9h3.3c5.5 0 14-.6 14-.6 2.9-.2 3.2 4 .4 4.3 0 0-2.9.4-6 .5l19.1 57L59.7 59l-8.2-22.5c-2.8-.1-5.5-.5-5.5-.5-2.8-.1-2.5-4.5.3-4.3 0 0 8.7.7 13.9.7 5.5 0 14-.7 14-.7 2.8-.2 3.2 4 .3 4.3 0 0-2.8.4-6 .5l19 56.5 5.2-17.5c2.3-7.3 4-12.5 4-17z\"/%3E%3Cpath d=\"M62.2 65.9l-15.8 45.8a52.6 52.6 0 0 0 32.3-.9l-.4-.7zM107.4 36a49.6 49.6 0 0 1-3.6 24.2l-16.1 46.5A52.5 52.5 0 0 0 107.4 36z\"/%3E%3Cpath d=\"M61.3 0a61.3 61.3 0 1 0 .1 122.7A61.3 61.3 0 0 0 61.3 0zm0 119.7a58.5 58.5 0 1 1 .1-117 58.5 58.5 0 0 1-.1 117z\"/%3E%3C/g%3E%3C/svg%3E", "descriptions": { - "unused-css-rules": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused CSS in your page. To identify plugins that are adding extraneous CSS, try running [code coverage](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the stylesheet. Look out for plugins that have many stylesheets in the list which have a lot of red in code coverage. A plugin should only enqueue a stylesheet if it is actually used on the page.", + "unused-css-rules": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused CSS in your page. To identify plugins that are adding extraneous CSS, try running [code coverage](https://developer.chrome.com/docs/devtools/coverage/) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the stylesheet. Look out for plugins that have many stylesheets in the list which have a lot of red in code coverage. A plugin should only enqueue a stylesheet if it is actually used on the page.", "modern-image-formats": "Consider using a [plugin](https://wordpress.org/plugins/search/convert+webp/) or service that will automatically convert your uploaded images to the optimal formats.", "offscreen-images": "Install a [lazy-load WordPress plugin](https://wordpress.org/plugins/search/lazy+load/) that provides the ability to defer any offscreen images, or switch to a theme that provides that functionality. Also consider using [the AMP plugin](https://wordpress.org/plugins/amp/).", "total-byte-weight": "Consider showing excerpts in your post lists (e.g. via the more tag), reducing the number of posts shown on a given page, breaking your long posts into multiple pages, or using a plugin to lazy-load comments.", @@ -6836,7 +6836,7 @@ "unminified-css": "A number of [WordPress plugins](https://wordpress.org/plugins/search/minify+css/) can speed up your site by concatenating, minifying, and compressing your styles. You may also want to use a build process to do this minification up-front if possible.", "unminified-javascript": "A number of [WordPress plugins](https://wordpress.org/plugins/search/minify+javascript/) can speed up your site by concatenating, minifying, and compressing your scripts. You may also want to use a build process to do this minification up front if possible.", "efficient-animated-content": "Consider uploading your GIF to a service which will make it available to embed as an HTML5 video.", - "unused-javascript": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused JavaScript in your page. To identify plugins that are adding extraneous JS, try running [code coverage](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the script. Look out for plugins that have many scripts in the list which have a lot of red in code coverage. A plugin should only enqueue a script if it is actually used on the page.", + "unused-javascript": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused JavaScript in your page. To identify plugins that are adding extraneous JS, try running [code coverage](https://developer.chrome.com/docs/devtools/coverage/) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the script. Look out for plugins that have many scripts in the list which have a lot of red in code coverage. A plugin should only enqueue a script if it is actually used on the page.", "uses-long-cache-ttl": "Read about [Browser Caching in WordPress](https://wordpress.org/support/article/optimization/#browser-caching).", "uses-optimized-images": "Consider using an [image optimization WordPress plugin](https://wordpress.org/plugins/search/optimize+images/) that compresses your images while retaining quality.", "uses-text-compression": "You can enable text compression in your web server configuration.", diff --git a/package.json b/package.json index 0e4957142507..8a1f2c290774 100644 --- a/package.json +++ b/package.json @@ -194,7 +194,7 @@ "jpeg-js": "^0.4.3", "js-library-detector": "^6.4.0", "lighthouse-logger": "^1.3.0", - "lighthouse-stack-packs": "^1.6.0", + "lighthouse-stack-packs": "^1.7.0", "lodash.clonedeep": "^4.5.0", "lodash.get": "^4.4.2", "lodash.isequal": "^4.5.0", diff --git a/shared/localization/locales/en-US.json b/shared/localization/locales/en-US.json index 84515bb31a1a..f39541895e40 100644 --- a/shared/localization/locales/en-US.json +++ b/shared/localization/locales/en-US.json @@ -2147,6 +2147,45 @@ "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-responsive-images": { "message": "Ensure that you are using the native [Responsive Image Styles](https://www.drupal.org/docs/8/mobile-guide/responsive-images-in-drupal-8) provided from Drupal (available in Drupal 8 and above). Use the Responsive Image Styles when rendering image fields through view modes, views, or images uploaded through the WYSIWYG editor." }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | font-display": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Optimize Fonts` to automatically leverage the `font-display` CSS feature to ensure text is user-visible while webfonts are loading." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | modern-image-formats": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Next-Gen Formats` to convert images to WebP." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | offscreen-images": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Lazy Load Images` to defer loading off-screen images until they are needed." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | render-blocking-resources": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Critical CSS` and `Script Delay` to defer non-critical JS/CSS." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | server-response-time": { + "message": "Use [Ezoic Cloud Caching](https://pubdash.ezoic.com/speed/caching) to cache your content across our world wide network, improving time to first byte." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-css": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Minify CSS` to automatically minify your CSS to reduce network payload sizes." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-javascript": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Minify Javascript` to automatically minify your JS to reduce network payload sizes." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | unused-css-rules": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Remove Unused CSS` to help with this issue. It will identify the CSS classes that are actually used on each page of your site, and remove any others to keep the file size small." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-long-cache-ttl": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Efficient Static Cache Policy` to set recommended values in the caching header for static assests." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-optimized-images": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Next-Gen Formats` to convert images to WebP." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preconnect": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Pre-Connect Origins` to automatically add `preconnect` resource hints to establish early connections to important third-party origins." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preload": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Preload Fonts` and `Preload Background Images` to add `preload` links to prioritize fetching resources that are currently requested later in page load." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-responsive-images": { + "message": "Use [Ezoic Leap](https://pubdash.ezoic.com/speed) and enable `Resize Images` to resize images to a device appropriate size, reducing network payload sizes." + }, "node_modules/lighthouse-stack-packs/packs/joomla.js | efficient-animated-content": { "message": "Consider uploading your GIF to a service which will make it available to embed as an HTML5 video." }, @@ -2231,6 +2270,9 @@ "node_modules/lighthouse-stack-packs/packs/next.js | offscreen-images": { "message": "Use the `next/image` component, which defaults to `loading=\"lazy\"`. [Learn more](https://nextjs.org/docs/api-reference/next/image#loading)." }, + "node_modules/lighthouse-stack-packs/packs/next.js | preload-lcp-image": { + "message": "Use the `next/image` component and set \"priority\" to true to preload LCP image. [Learn more](https://nextjs.org/docs/api-reference/next/image#priority)." + }, "node_modules/lighthouse-stack-packs/packs/next.js | render-blocking-resources": { "message": "Use the `next/script` component to defer loading of non-critical third-party scripts. [Learn more](https://nextjs.org/docs/basic-features/script)." }, @@ -2238,7 +2280,7 @@ "message": "Consider setting up `PurgeCSS` in `Next.js` configuration to remove unused rules from stylesheets. [Learn more](https://purgecss.com/guides/next.html)." }, "node_modules/lighthouse-stack-packs/packs/next.js | unused-javascript": { - "message": "Use `Webpack Bundle Analyzer` to detect unused JavaScript code. [Learn mode](https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer)" + "message": "Use `Webpack Bundle Analyzer` to detect unused JavaScript code. [Learn more](https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer)" }, "node_modules/lighthouse-stack-packs/packs/next.js | user-timings": { "message": "Consider using `Next.js Analytics` to measure your app's real-world performance. [Learn more](https://nextjs.org/docs/advanced-features/measuring-performance)." @@ -2343,10 +2385,10 @@ "message": "A number of [WordPress plugins](https://wordpress.org/plugins/search/minify+javascript/) can speed up your site by concatenating, minifying, and compressing your scripts. You may also want to use a build process to do this minification up front if possible." }, "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-css-rules": { - "message": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused CSS in your page. To identify plugins that are adding extraneous CSS, try running [code coverage](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the stylesheet. Look out for plugins that have many stylesheets in the list which have a lot of red in code coverage. A plugin should only enqueue a stylesheet if it is actually used on the page." + "message": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused CSS in your page. To identify plugins that are adding extraneous CSS, try running [code coverage](https://developer.chrome.com/docs/devtools/coverage/) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the stylesheet. Look out for plugins that have many stylesheets in the list which have a lot of red in code coverage. A plugin should only enqueue a stylesheet if it is actually used on the page." }, "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-javascript": { - "message": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused JavaScript in your page. To identify plugins that are adding extraneous JS, try running [code coverage](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the script. Look out for plugins that have many scripts in the list which have a lot of red in code coverage. A plugin should only enqueue a script if it is actually used on the page." + "message": "Consider reducing, or switching, the number of [WordPress plugins](https://wordpress.org/plugins/) loading unused JavaScript in your page. To identify plugins that are adding extraneous JS, try running [code coverage](https://developer.chrome.com/docs/devtools/coverage/) in Chrome DevTools. You can identify the theme/plugin responsible from the URL of the script. Look out for plugins that have many scripts in the list which have a lot of red in code coverage. A plugin should only enqueue a script if it is actually used on the page." }, "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-long-cache-ttl": { "message": "Read about [Browser Caching in WordPress](https://wordpress.org/support/article/optimization/#browser-caching)." diff --git a/shared/localization/locales/en-XL.json b/shared/localization/locales/en-XL.json index e02e12040df6..73e85bccac43 100644 --- a/shared/localization/locales/en-XL.json +++ b/shared/localization/locales/en-XL.json @@ -2147,6 +2147,45 @@ "node_modules/lighthouse-stack-packs/packs/drupal.js | uses-responsive-images": { "message": "Êńŝúr̂é t̂h́ât́ ŷóû ár̂é ûśîńĝ t́ĥé n̂át̂ív̂é [R̂éŝṕôńŝív̂é Îḿâǵê Śt̂ýl̂éŝ](https://www.drupal.org/docs/8/mobile-guide/responsive-images-in-drupal-8) ṕr̂óv̂íd̂éd̂ f́r̂óm̂ D́r̂úp̂ál̂ (áv̂áîĺâb́l̂é îń D̂ŕûṕâĺ 8 âńd̂ áb̂óv̂é). Ûśê t́ĥé R̂éŝṕôńŝív̂é Îḿâǵê Śt̂ýl̂éŝ ẃĥén̂ ŕêńd̂ér̂ín̂ǵ îḿâǵê f́îél̂d́ŝ t́ĥŕôúĝh́ v̂íêẃ m̂ód̂éŝ, v́îéŵś, ôŕ îḿâǵêś ûṕl̂óâd́êd́ t̂h́r̂óûǵĥ t́ĥé ŴÝŜÍŴÝĜ éd̂ít̂ór̂." }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | font-display": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Optimize Fonts` t́ô áût́ôḿât́îćâĺl̂ý l̂év̂ér̂áĝé t̂h́ê `font-display` ĆŜŚ f̂éât́ûŕê t́ô én̂śûŕê t́êx́t̂ íŝ úŝér̂-v́îśîb́l̂é ŵh́îĺê ẃêb́f̂ón̂t́ŝ ár̂é l̂óâd́îńĝ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | modern-image-formats": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Next-Gen Formats` t́ô ćôńv̂ér̂t́ îḿâǵêś t̂ó Ŵéb̂Ṕ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | offscreen-images": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Lazy Load Images` t́ô d́êf́êŕ l̂óâd́îńĝ óf̂f́-ŝćr̂éêń îḿâǵêś ûńt̂íl̂ t́ĥéŷ ár̂é n̂éêd́êd́." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | render-blocking-resources": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Critical CSS` án̂d́ `Script Delay` t̂ó d̂éf̂ér̂ ńôń-ĉŕît́îćâĺ ĴŚ/ĈŚŜ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | server-response-time": { + "message": "Ûśê [Éẑóîć Ĉĺôúd̂ Ćâćĥín̂ǵ](https://pubdash.ezoic.com/speed/caching) t̂ó ĉáĉh́ê ýôúr̂ ćôńt̂én̂t́ âćr̂óŝś ôúr̂ ẃôŕl̂d́ ŵíd̂é n̂ét̂ẃôŕk̂, ím̂ṕr̂óv̂ín̂ǵ t̂ím̂é t̂ó f̂ír̂śt̂ b́ŷt́ê." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-css": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Minify CSS` t́ô áût́ôḿât́îćâĺl̂ý m̂ín̂íf̂ý ŷóûŕ ĈŚŜ t́ô ŕêd́ûćê ńêt́ŵór̂ḱ p̂áŷĺôád̂ śîźêś." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | unminified-javascript": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Minify Javascript` t́ô áût́ôḿât́îćâĺl̂ý m̂ín̂íf̂ý ŷóûŕ ĴŚ t̂ó r̂éd̂úĉé n̂ét̂ẃôŕk̂ ṕâýl̂óâd́ ŝíẑéŝ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | unused-css-rules": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Remove Unused CSS` t́ô h́êĺp̂ ẃît́ĥ t́ĥíŝ íŝśûé. Ît́ ŵíl̂ĺ îd́êńt̂íf̂ý t̂h́ê ĆŜŚ ĉĺâśŝéŝ t́ĥát̂ ár̂é âćt̂úâĺl̂ý ûśêd́ ôń êáĉh́ p̂áĝé ôf́ ŷóûŕ ŝít̂é, âńd̂ ŕêḿôv́ê án̂ý ôt́ĥér̂ś t̂ó k̂éêṕ t̂h́ê f́îĺê śîźê śm̂ál̂ĺ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-long-cache-ttl": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Efficient Static Cache Policy` t́ô śêt́ r̂éĉóm̂ḿêńd̂éd̂ v́âĺûéŝ ín̂ t́ĥé ĉáĉh́îńĝ h́êád̂ér̂ f́ôŕ ŝt́ât́îć âśŝéŝt́ŝ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-optimized-images": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Next-Gen Formats` t́ô ćôńv̂ér̂t́ îḿâǵêś t̂ó Ŵéb̂Ṕ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preconnect": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Pre-Connect Origins` t́ô áût́ôḿât́îćâĺl̂ý âd́d̂ `preconnect` ŕêśôúr̂ćê h́îńt̂ś t̂ó êśt̂áb̂ĺîśĥ éâŕl̂ý ĉón̂ńêćt̂íôńŝ t́ô ím̂ṕôŕt̂án̂t́ t̂h́îŕd̂-ṕâŕt̂ý ôŕîǵîńŝ." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-rel-preload": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Preload Fonts` án̂d́ `Preload Background Images` t̂ó âd́d̂ `preload` ĺîńk̂ś t̂ó p̂ŕîór̂ít̂íẑé f̂ét̂ćĥín̂ǵ r̂éŝóûŕĉéŝ t́ĥát̂ ár̂é ĉúr̂ŕêńt̂ĺŷ ŕêq́ûéŝt́êd́ l̂át̂ér̂ ín̂ ṕâǵê ĺôád̂." + }, + "node_modules/lighthouse-stack-packs/packs/ezoic.js | uses-responsive-images": { + "message": "Ûśê [Éẑóîć L̂éâṕ](https://pubdash.ezoic.com/speed) âńd̂ én̂áb̂ĺê `Resize Images` t́ô ŕêśîźê ím̂áĝéŝ t́ô á d̂év̂íĉé âṕp̂ŕôṕr̂íât́ê śîźê, ŕêd́ûćîńĝ ńêt́ŵór̂ḱ p̂áŷĺôád̂ śîźêś." + }, "node_modules/lighthouse-stack-packs/packs/joomla.js | efficient-animated-content": { "message": "Ĉón̂śîd́êŕ ûṕl̂óâd́îńĝ ýôúr̂ ǴÎF́ t̂ó â śêŕv̂íĉé ŵh́îćĥ ẃîĺl̂ ḿâḱê ít̂ áv̂áîĺâb́l̂é t̂ó êḿb̂éd̂ áŝ án̂ H́T̂ḾL̂5 v́îd́êó." }, @@ -2231,6 +2270,9 @@ "node_modules/lighthouse-stack-packs/packs/next.js | offscreen-images": { "message": "Ûśê t́ĥé `next/image` ĉóm̂ṕôńêńt̂, ẃĥíĉh́ d̂éf̂áûĺt̂ś t̂ó `loading=\"lazy\"`. [L̂éâŕn̂ ḿôŕê](https://nextjs.org/docs/api-reference/next/image#loading)." }, + "node_modules/lighthouse-stack-packs/packs/next.js | preload-lcp-image": { + "message": "Ûśê t́ĥé `next/image` ĉóm̂ṕôńêńt̂ án̂d́ ŝét̂ \"ṕr̂íôŕît́ŷ\" t́ô t́r̂úê t́ô ṕr̂él̂óâd́ L̂ĆP̂ ím̂áĝé. [L̂éâŕn̂ ḿôŕê](https://nextjs.org/docs/api-reference/next/image#priority)." + }, "node_modules/lighthouse-stack-packs/packs/next.js | render-blocking-resources": { "message": "Ûśê t́ĥé `next/script` ĉóm̂ṕôńêńt̂ t́ô d́êf́êŕ l̂óâd́îńĝ óf̂ ńôń-ĉŕît́îćâĺ t̂h́îŕd̂-ṕâŕt̂ý ŝćr̂íp̂t́ŝ. [Ĺêár̂ń m̂ór̂é](https://nextjs.org/docs/basic-features/script)." }, @@ -2238,7 +2280,7 @@ "message": "Ĉón̂śîd́êŕ ŝét̂t́îńĝ úp̂ `PurgeCSS` ín̂ `Next.js` ćôńf̂íĝúr̂át̂íôń t̂ó r̂ém̂óv̂é ûńûśêd́ r̂úl̂éŝ f́r̂óm̂ śt̂ýl̂éŝh́êét̂ś. [L̂éâŕn̂ ḿôŕê](https://purgecss.com/guides/next.html)." }, "node_modules/lighthouse-stack-packs/packs/next.js | unused-javascript": { - "message": "Ûśê `Webpack Bundle Analyzer` t́ô d́êt́êćt̂ ún̂úŝéd̂ J́âv́âŚĉŕîṕt̂ ćôd́ê. [Ĺêár̂ń m̂ód̂é](https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer)" + "message": "Ûśê `Webpack Bundle Analyzer` t́ô d́êt́êćt̂ ún̂úŝéd̂ J́âv́âŚĉŕîṕt̂ ćôd́ê. [Ĺêár̂ń m̂ór̂é](https://github.com/vercel/next.js/tree/canary/packages/next-bundle-analyzer)" }, "node_modules/lighthouse-stack-packs/packs/next.js | user-timings": { "message": "Ĉón̂śîd́êŕ ûśîńĝ `Next.js Analytics` t́ô ḿêáŝúr̂é ŷóûŕ âṕp̂'ś r̂éâĺ-ŵór̂ĺd̂ ṕêŕf̂ór̂ḿâńĉé. [L̂éâŕn̂ ḿôŕê](https://nextjs.org/docs/advanced-features/measuring-performance)." @@ -2343,10 +2385,10 @@ "message": " ńûḿb̂ér̂ óf̂ [Ẃôŕd̂Ṕr̂éŝś p̂ĺûǵîńŝ](https://wordpress.org/plugins/search/minify+javascript/) ćâń ŝṕêéd̂ úp̂ ýôúr̂ śît́ê b́ŷ ćôńĉát̂én̂át̂ín̂ǵ, m̂ín̂íf̂ýîńĝ, án̂d́ ĉóm̂ṕr̂éŝśîńĝ ýôúr̂ śĉŕîṕt̂ś. Ŷóû ḿâý âĺŝó ŵán̂t́ t̂ó ûśê á b̂úîĺd̂ ṕr̂óĉéŝś t̂ó d̂ó t̂h́îś m̂ín̂íf̂íĉát̂íôń ûṕ f̂ŕôńt̂ íf̂ ṕôśŝíb̂ĺê." }, "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-css-rules": { - "message": "Ĉón̂śîd́êŕ r̂éd̂úĉín̂ǵ, ôŕ ŝẃît́ĉh́îńĝ, t́ĥé n̂úm̂b́êŕ ôf́ [Ŵór̂d́P̂ŕêśŝ ṕl̂úĝín̂ś](https://wordpress.org/plugins/) l̂óâd́îńĝ ún̂úŝéd̂ ĆŜŚ îń ŷóûŕ p̂áĝé. T̂ó îd́êńt̂íf̂ý p̂ĺûǵîńŝ t́ĥát̂ ár̂é âd́d̂ín̂ǵ êx́t̂ŕâńêóûś ĈŚŜ, t́r̂ý r̂ún̂ńîńĝ [ćôd́ê ćôv́êŕâǵê](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) ín̂ Ćĥŕôḿê D́êv́T̂óôĺŝ. Ýôú ĉán̂ íd̂én̂t́îf́ŷ t́ĥé t̂h́êḿê/ṕl̂úĝín̂ ŕêśp̂ón̂śîb́l̂é f̂ŕôḿ t̂h́ê ÚR̂Ĺ ôf́ t̂h́ê śt̂ýl̂éŝh́êét̂. Ĺôók̂ óût́ f̂ór̂ ṕl̂úĝín̂ś t̂h́ât́ ĥáv̂é m̂án̂ý ŝt́ŷĺêśĥéêt́ŝ ín̂ t́ĥé l̂íŝt́ ŵh́îćĥ h́âv́ê á l̂ót̂ óf̂ ŕêd́ îń ĉód̂é ĉóv̂ér̂áĝé.  ṕl̂úĝín̂ śĥóûĺd̂ ón̂ĺŷ én̂q́ûéûé â śt̂ýl̂éŝh́êét̂ íf̂ ít̂ íŝ áĉt́ûál̂ĺŷ úŝéd̂ ón̂ t́ĥé p̂áĝé." + "message": "Ĉón̂śîd́êŕ r̂éd̂úĉín̂ǵ, ôŕ ŝẃît́ĉh́îńĝ, t́ĥé n̂úm̂b́êŕ ôf́ [Ŵór̂d́P̂ŕêśŝ ṕl̂úĝín̂ś](https://wordpress.org/plugins/) l̂óâd́îńĝ ún̂úŝéd̂ ĆŜŚ îń ŷóûŕ p̂áĝé. T̂ó îd́êńt̂íf̂ý p̂ĺûǵîńŝ t́ĥát̂ ár̂é âd́d̂ín̂ǵ êx́t̂ŕâńêóûś ĈŚŜ, t́r̂ý r̂ún̂ńîńĝ [ćôd́ê ćôv́êŕâǵê](https://developer.chrome.com/docs/devtools/coverage/) ín̂ Ćĥŕôḿê D́êv́T̂óôĺŝ. Ýôú ĉán̂ íd̂én̂t́îf́ŷ t́ĥé t̂h́êḿê/ṕl̂úĝín̂ ŕêśp̂ón̂śîb́l̂é f̂ŕôḿ t̂h́ê ÚR̂Ĺ ôf́ t̂h́ê śt̂ýl̂éŝh́êét̂. Ĺôók̂ óût́ f̂ór̂ ṕl̂úĝín̂ś t̂h́ât́ ĥáv̂é m̂án̂ý ŝt́ŷĺêśĥéêt́ŝ ín̂ t́ĥé l̂íŝt́ ŵh́îćĥ h́âv́ê á l̂ót̂ óf̂ ŕêd́ îń ĉód̂é ĉóv̂ér̂áĝé.  ṕl̂úĝín̂ śĥóûĺd̂ ón̂ĺŷ én̂q́ûéûé â śt̂ýl̂éŝh́êét̂ íf̂ ít̂ íŝ áĉt́ûál̂ĺŷ úŝéd̂ ón̂ t́ĥé p̂áĝé." }, "node_modules/lighthouse-stack-packs/packs/wordpress.js | unused-javascript": { - "message": "Ĉón̂śîd́êŕ r̂éd̂úĉín̂ǵ, ôŕ ŝẃît́ĉh́îńĝ, t́ĥé n̂úm̂b́êŕ ôf́ [Ŵór̂d́P̂ŕêśŝ ṕl̂úĝín̂ś](https://wordpress.org/plugins/) l̂óâd́îńĝ ún̂úŝéd̂ J́âv́âŚĉŕîṕt̂ ín̂ ýôúr̂ ṕâǵê. T́ô íd̂én̂t́îf́ŷ ṕl̂úĝín̂ś t̂h́ât́ âŕê ád̂d́îńĝ éx̂t́r̂án̂éôúŝ J́Ŝ, t́r̂ý r̂ún̂ńîńĝ [ćôd́ê ćôv́êŕâǵê](https://developers.google.com/web/updates/2017/04/devtools-release-notes#coverage) ín̂ Ćĥŕôḿê D́êv́T̂óôĺŝ. Ýôú ĉán̂ íd̂én̂t́îf́ŷ t́ĥé t̂h́êḿê/ṕl̂úĝín̂ ŕêśp̂ón̂śîb́l̂é f̂ŕôḿ t̂h́ê ÚR̂Ĺ ôf́ t̂h́ê śĉŕîṕt̂. Ĺôók̂ óût́ f̂ór̂ ṕl̂úĝín̂ś t̂h́ât́ ĥáv̂é m̂án̂ý ŝćr̂íp̂t́ŝ ín̂ t́ĥé l̂íŝt́ ŵh́îćĥ h́âv́ê á l̂ót̂ óf̂ ŕêd́ îń ĉód̂é ĉóv̂ér̂áĝé.  ṕl̂úĝín̂ śĥóûĺd̂ ón̂ĺŷ én̂q́ûéûé â śĉŕîṕt̂ íf̂ ít̂ íŝ áĉt́ûál̂ĺŷ úŝéd̂ ón̂ t́ĥé p̂áĝé." + "message": "Ĉón̂śîd́êŕ r̂éd̂úĉín̂ǵ, ôŕ ŝẃît́ĉh́îńĝ, t́ĥé n̂úm̂b́êŕ ôf́ [Ŵór̂d́P̂ŕêśŝ ṕl̂úĝín̂ś](https://wordpress.org/plugins/) l̂óâd́îńĝ ún̂úŝéd̂ J́âv́âŚĉŕîṕt̂ ín̂ ýôúr̂ ṕâǵê. T́ô íd̂én̂t́îf́ŷ ṕl̂úĝín̂ś t̂h́ât́ âŕê ád̂d́îńĝ éx̂t́r̂án̂éôúŝ J́Ŝ, t́r̂ý r̂ún̂ńîńĝ [ćôd́ê ćôv́êŕâǵê](https://developer.chrome.com/docs/devtools/coverage/) ín̂ Ćĥŕôḿê D́êv́T̂óôĺŝ. Ýôú ĉán̂ íd̂én̂t́îf́ŷ t́ĥé t̂h́êḿê/ṕl̂úĝín̂ ŕêśp̂ón̂śîb́l̂é f̂ŕôḿ t̂h́ê ÚR̂Ĺ ôf́ t̂h́ê śĉŕîṕt̂. Ĺôók̂ óût́ f̂ór̂ ṕl̂úĝín̂ś t̂h́ât́ ĥáv̂é m̂án̂ý ŝćr̂íp̂t́ŝ ín̂ t́ĥé l̂íŝt́ ŵh́îćĥ h́âv́ê á l̂ót̂ óf̂ ŕêd́ îń ĉód̂é ĉóv̂ér̂áĝé.  ṕl̂úĝín̂ śĥóûĺd̂ ón̂ĺŷ én̂q́ûéûé â śĉŕîṕt̂ íf̂ ít̂ íŝ áĉt́ûál̂ĺŷ úŝéd̂ ón̂ t́ĥé p̂áĝé." }, "node_modules/lighthouse-stack-packs/packs/wordpress.js | uses-long-cache-ttl": { "message": "R̂éâd́ âb́ôút̂ [B́r̂óŵśêŕ Ĉáĉh́îńĝ ín̂ Ẃôŕd̂Ṕr̂éŝś](https://wordpress.org/support/article/optimization/#browser-caching)." diff --git a/yarn.lock b/yarn.lock index 3efd1e1634f8..60d598516d91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5596,10 +5596,10 @@ lighthouse-plugin-publisher-ads@^1.5.4: intl-messageformat "^4.1.2" yargs "^16.1.1" -lighthouse-stack-packs@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.6.0.tgz#f7327352089f65f4ca61135956c77b9d13f6d681" - integrity sha512-isv4qY9YCiRis5Z3ijy14IUyAbl6AoD+Q8Co1t0GBBuQK2ZUTSK6mLgFd91MVJrhXaF3LXJRcO+JXaUFHedHhA== +lighthouse-stack-packs@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.7.0.tgz#b159b68e4f974dbb1bd652957de97864cacb37ac" + integrity sha512-ggLg9V6Hs31Qcn29L2fwKsaQq8L5t+mIv3lNqwd85bc7zFxpMVybK71b4w2OeBLpa0H8gATIi9fxPlP+9moMDA== lines-and-columns@^1.1.6: version "1.2.4"