Vite使用purgecss后CSS文件没变小是怎么回事?
我项目里用styled-components后CSS文件变得很大,按照教程配置了purgecss插件,但构建后dist里的css文件还是原样。在vite.config.js里这样写的:
import purgecss from 'vite-plugin-purgecss';
export default {
plugins: [
purgecss({
content: ['./src/**/*.@(html|js|vue)'
})
]
}
package.json也装了@fullhuman/postcss-purgecss,但控制台没报错。是不是需要额外配置?或者purgecss不支持CSS-in-JS?
所以你的配置本身没问题,但 purgecss 对 CSS-in-JS 支持有限。如果你确实想用 purgecss,可以试试把项目里的全局样式和组件库样式单独抽离出来,放到普通的 CSS 文件里,然后对这些文件进行清理。
另外一种解决方法是换个思路,直接优化 styled-components 的打包结果。比如你可以用 babel-plugin-styled-components 插件,它能帮你压缩和优化生成的样式代码。安装这个插件后,在 babel.config.js 中添加配置:
还有一点需要注意的是,styled-components 本身在生产环境下会自动去掉调试信息,所以确保你在构建时设置了 NODE_ENV=production。
总结一下,purgecss 不适合直接处理 CSS-in-JS 的场景,建议你优化 styled-components 的打包流程,或者把全局样式抽离出来单独处理。这两种方式应该都能有效减小最终的 CSS 文件大小。