【发布时间】:2021-08-15 17:23:09
【问题描述】:
我目前正在处理 Next.js 中的一个项目,我们将自定义 SCSS 与 Bootstrap SCSS 和 React-Bootstrap 结合使用。我们注意到我们的 main.scss 文件(我们的自定义 SCSS 和 Bootstrap SCSS 捆绑在一起)变得太重了。
当我在 Chrome 中查看覆盖选项卡时,我注意到 95% 的 CSS 没有被使用。所以我想摆脱 Bootstrap SCSS 文件中所有未被使用的 CSS。
我发现您可以通过在 Next.js 中添加 postcss.config.js 文件然后在其中添加 purgeCSS (https://purgecss.com/guides/next.html) 来清除 CSS。
问题在于这是基于源代码(JS、JSX、TS、TSX 文件)的。 在源文件中,我们使用 react-bootstrap 组件,这些组件也使用了 Bootstrap SCSS 文件中的一些 CSS。 purgeCSS 没有注意到这一点,因为源代码中没有这些类。
这就是为什么我希望 purgeCSS 在 Next.js 的输出 HTML 上运行。
为此,我将package.json 中的build 任务调整为:
"build": "next build && purgecss --css ./.next/static/**/*.css --content ./.next/server/**/*.html --output ./.next/static/css",
这很好,CSS 输出正是我想要的。但我不知道如何制作,所以 Next.js 实际上在网站上使用了这个 new CSS 文件,而不是 unoptimized CSS。有什么想法吗?
【问题讨论】:
标签: javascript html reactjs sass next.js