📓 Note: 为什么 index.scss
的覆盖只在保存后才生效?
- VuePress v2 确实会自动加载
docs/.vuepress/styles/index.scss
。 - 但在实践中,当开发服务器第一次启动时,主题的 CSS bundle
(@vuepress/theme-default/lib/client/styles/index.scss
)会在你的用户样式之后被注入。 - 这意味着在 fresh
npm run dev
的时候,你的规则会被覆盖。
当你保存 index.scss
:
- Vite 的 HMR 会再次注入你的样式,这次是在
<style>
堆栈的末尾,所以赢得了层叠优先级。 - 这就是为什么它在 保存后 看起来“生效”,而在初始加载时无效。
✅ 解决方案
手动控制加载顺序 —— 在 client.ts
里引入你的样式:
// docs/.vuepress/client.ts
import './styles/index.scss';