必须先删除 bootstrap.min.css 引用,再按需导入 sass 模块并精简 utilities、print.scss 和图标字体,否则体积优化无效。

删掉 bootstrap.min.css 是第一步,否则所有优化都白搭
几乎所有体积问题的根源,就是项目里还留着 bootstrap.min.css 的引用——无论是 @import "bootstrap/dist/css/bootstrap.min.css" 还是 HTML 中的 <link href="bootstrap.min.css">。它会把全部 200KB+ 的 CSS 一次性加载进来,后续任何 Sass 配置、变量覆盖都救不回来。
必须先从构建入口(如 main.scss 或 index.js)或 HTML 中彻底移除它,再开始按需引入。
- 检查 Webpack/Vite 的入口文件,确认没有
import 'bootstrap/dist/css/bootstrap.min.css' - 搜索整个项目,删掉所有
<link rel="stylesheet" href="...bootstrap.min.css"> - 如果用了 CDN,也得删掉对应
<link>标签
按顺序手动 @import Sass 模块,顺序错了就编译失败
Bootstrap 的 Sass 模块之间有强依赖,比如 _buttons.scss 要用到 $enable-rounded(来自 variables)和 color-contrast()(来自 functions),顺序乱了就会报错,常见错误像:Error: Undefined variable: "$enable-rounded" 或 Function "color-contrast" not found。
你的自定义 .scss 文件开头必须严格按这个顺序写:
@import "bootstrap/scss/functions";@import "bootstrap/scss/variables";@import "bootstrap/scss/mixins";-
@import "bootstrap/scss/reboot";(推荐保留,删了按钮、表格等基础样式会错位) @import "bootstrap/scss/grid";@import "bootstrap/scss/buttons";-
@import "bootstrap/scss/forms";(按需添加,不用就跳过)
绝对不要 @import "bootstrap/scss/bootstrap"——这是全量入口,和 CDN 效果一样。
utilities 不是“开关”,精简它要改 map 和断点
只写 @import "bootstrap/scss/utilities" 看似按需,实则默认生成全部断点(xs/sm/md/lg/xl/xxl)+ 全部间距类(mt-1 到 mt-5)+ 所有状态变体(mt-md-3、mt-hover-3),体积可能比几个组件加起来还大。
真正精简 utilities,得在 @import "bootstrap/scss/utilities" 前做三件事:
- 覆盖
$grid-breakpoints,例如只留:$grid-breakpoints: (xs: 0, md: 768px); - 精简
$spacers,删掉不用的层级:$spacers: (0: 0, 1: 0.25rem, 2: 0.5rem, 4: 1rem); - 注释掉不需要的 utility 子文件,比如去掉
// @import "bootstrap/scss/utilities/_shadows";
注意:$enable-* 变量(如 $enable-shadows)只控制是否生成对应规则,但前提是 utilities 已被导入;它不能替代上面这些操作。
别忽略 print.scss 和图标字体这些隐藏体积大户
很多人以为体积只来自组件,其实 print.scss 和 bootstrap-icons 常被无意识打包进最终产物,贡献可观体积:
-
print.scss默认被bootstrap.scss引入,含大量媒体查询打印样式——如果你不做 PDF 导出,直接删掉这一行 - Bootstrap 5.3+ 官方已不内置图标,但老项目常残留
bootstrap-icons或旧版迁移的字体文件(bootstrap-icons.woff2),单个文件就占 50–80KB - 检查
node_modules是否存在bootstrap-icons包,若没用就npm uninstall bootstrap-icons
这些地方不清理,哪怕你只引入了 grid 和 buttons,最终 CSS 也可能多出 100KB。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











