webpack 项目先引入全局 css 再引入组件入口

维护一些老应用时,发现构建后遇到一些样式异常,但在开发时没有体现的。经过排查发现,是一些全局样式,如 Normalize.css 或者 vant 的一些全局样式与组件样式产生冲突。

样式冲突可以理解,但为什么开发时没有体现呢?

这是因为 webpack 配置使得在开发和构建时引入 css 的方式不同,构建时是会按 css 的 import 顺序进行打包的,在引入这些全局样式前引入了 App.jsxApp.vue,那么这些全局样式会在组件后,就可能覆盖掉组件内的样式。

所以,保持先引入样式,再引入组件入口文件,这样使得生产和开发都能保持一样的顺序,更容易在开发阶段识别到样式问题。

import 'vant/lib/index.css'
import './main.css'
import App from './App.jsx'