Webpack DllPlugin 打包后 CSS 样式丢失了怎么办?
我用 Webpack 的 DllPlugin 把 React 和一些公共库单独打包了,但发现页面上的样式全没了。明明没动 CSS 文件,也不报错,就是样式不生效。
我项目里有段全局样式是这样写的:
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background-color: #f5f5f5;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
DllPlugin 配置应该没问题,因为 JS 能正常加载,但这段 CSS 在 dll 打包之后就完全不生效了,是不是哪里漏了?
你的 Dll 配置里应该用了 MiniCssExtractPlugin 或者类似的 loader 把 CSS 抽出来了,文件确实生成了,但是主项目的构建流程不知道要把这个 CSS 文件塞进 HTML 里。
解决办法很简单,你得手动把这个 DLL 生成的 CSS 文件加到 HTML 里。最省事的办法是用 add-asset-html-webpack-plugin,把那个 CSS 文件路径加进去。
在你的主项目 webpack 配置里,大概是这样改: