Tom-Bonnike/netlify-plugin-inline-critical-css

GitHub: Tom-Bonnike/netlify-plugin-inline-critical-css

一个 Netlify 构建插件,自动提取并内联首屏关键 CSS 以加速页面渲染。

Stars: 66 | Forks: 3

# netlify-plugin-inline-critical-css 一个用于提取并内联[关键 CSS](https://web.dev/extract-critical-css/) 的 Netlify Build 插件,基于 [`critical` 包](https://github.com/addyosmani/critical) 构建。它会提取首屏内容的 CSS 并将其内联到 HTML 文档中,以便尽可能快地向用户渲染内容。 将关键 CSS 直接内联到 HTML 文档中可以消除额外的请求,并可用于交付“单次往返”的关键路径,其中只有 HTML 是阻塞渲染的资源。你可以将此插件与 [`netlify-plugin-inline-source`](https://github.com/tom-bonnike/netlify-plugin-inline-source) 结合使用,以内联你的其他资产/资源,例如小图像、SVG 或阻塞渲染的脚本。 ## 用法与输入 要在 Netlify UI 中安装该插件,请使用此[应用内直接安装链接](https://app.netlify.com/plugins/netlify-plugin-inline-critical-css/install),或前往[插件目录](https://app.netlify.com/plugins)。 对于基于文件的安装,请将其添加到你的 `netlify.toml` 文件中。 ``` [[plugins]] package = "netlify-plugin-inline-critical-css" # All inputs are optional, so you can omit this section. # Defaults are shown below. [plugins.inputs] # A filter used to target specific files in the publish directory. Be sure to only target HTML files. This option is passed onto the readdirp library, see https://github.com/paulmillr/readdirp#options for more info. fileFilter = ["*.html"] # A filter used to target or ignore specific directories in the publish directory. This option is passed onto the readdirp library, see https://github.com/paulmillr/readdirp#options for more info. directoryFilter = ["!node_modules"] # You can refer to `critical`’s documentation: https://github.com/addyosmani/critical for all options below. # Whether to remove the inlined styles from any stylesheet referenced in the HTML. Use with caution. Removing the critical CSS per page results in a unique async loaded CSS file for every page, meaning you can’t rely on cache across multiple pages. extract = false # An array of objects containing `width` and `height` properties to deliver critical CSS for multiple screen resolutions. dimensions = [ { width = 414, height = 896 }, { width = 1920, height = 1080 } ] ``` 要完成基于文件的安装,请从项目的基础目录中使用 npm、yarn 或任何其他 Node.js 包管理器,将插件添加到 `package.json` 的 `devDependencies` 中。 ``` npm install -D netlify-plugin-inline-critical-css ``` 一旦安装并配置完成,该插件将自动在你站点的所有部署中运行。 ### 本地测试 要[在本地测试此插件](https://docs.netlify.com/configure-builds/build-plugins/create-plugins/#local-plugins),你可以使用 [Netlify CLI](https://docs.netlify.com/cli/get-started/#run-builds-locally): ``` # 安装 Netlify CLI。 npm install netlify-cli -g # 在项目工作目录中,使用 build bot 运行构建,就像 Netlify 所做的那样。 netlify build ```
标签:Critical CSS, CSS优化, HTML内联, MITM代理, Netlify Build, Netlify插件, SEO优化, Syscall, Web开发, Web性能, 前端优化, 前端工程化, 多模态安全, 网站加速, 自定义脚本, 静态网站, 页面加载速度, 首屏内容, 首屏渲染