关于 bootstrap-webpack
这是一个使用 Webpack 搭建 Bootstrap 6 项目的开发技能,面向熟悉 Node.js 和终端的开发者。它提供开发服务器、Sass 加载链及可选的生产优化设置。
主要功能
- 01安装 Webpack 与 Bootstrap 依赖
- 02创建项目文件结构
- 03配置 Webpack 开发服务器
- 04设置 Sass、CSS 与 PostCSS 加载器
- 05导入 Bootstrap 并验证组件
- 06可选提取 CSS 和内联 SVG
适用场景
- 01用 Webpack 创建 Bootstrap 6 项目
- 02配置 Sass 编译和 Autoprefixer
- 03按 CSP 需求调整 CSS 与 SVG 输出
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ twbs/ bootstrap --skill bootstrap-webpack安装后在 Claude Code 中输入/bootstrap-webpack确认已加载。
详细介绍
使用 Webpack 搭建 Bootstrap 6
搭建一个由 Webpack 打包的 Bootstrap 6 项目,并包含处理 Sass 所需的加载器。需要熟悉 Node.js 和终端。
工作流
- 步骤 1:设置 npm 并安装依赖
- 步骤 2:创建项目结构
- 步骤 3:配置 Webpack(样板代码 + 开发服务器)
- 步骤 4:设置加载器并导入 Bootstrap
- 步骤 5:验证
- 步骤 6(可选):生产环境优化
步骤 1:设置 npm 并安装依赖
-
创建项目并初始化 npm:
mkdir my-project && cd my-project npm init -y -
安装 Webpack 及其工具:
npm i --save-dev webpack webpack-cli webpack-dev-server html-webpack-plugin -
安装 Bootstrap 及其可选的对等依赖项(如果不使用菜单、弹出框或工具提示,请省略
@floating-ui/dom;如果不使用日期选择器,请省略vanilla-calendar-pro):npm i --save [email protected] @floating-ui/dom vanilla-calendar-pro -
安装打包 Bootstrap CSS 所需的加载器、Sass 和 Autoprefixer:
npm i --save-dev autoprefixer css-loader postcss-loader sass sass-loader style-loader
步骤 2:创建项目结构
mkdir {src,src/js,src/scss}
touch src/index.html src/js/main.js src/scss/styles.scss webpack.config.js
目标布局:
my-project/
├── src/
│ ├── js/
│ │ └── main.js
│ ├── scss/
│ │ └── styles.scss
│ └── index.html
├── package-lock.json
├── package.json
└── webpack.config.js
步骤 3:配置 Webpack
-
webpack.config.js— 入口、输出和开发服务器:'use strict' const path = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') module.exports = { mode: 'development', entry: './src/js/main.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist') }, devServer: { static: path.resolve(__dirname, 'dist'), port: 8080, hot: true }, plugins: [ new HtmlWebpackPlugin({ template: './src/index.html' }) ] } -
src/index.html:<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap w/ Webpack</title> </head> <body> <div class="container py-4 px-3 mx-auto"> <h1>Hello, Bootstrap and Webpack!</h1> <button class="btn-solid theme-primary">Primary button</button> </div> </body> </html> -
package.json— 添加脚本:{ "scripts": { "start": "webpack serve", "build": "webpack build --mode=production", "test": "echo \"Error: no test specified\" && exit 1" } } -
启动 Webpack:
npm start
步骤 4:设置加载器并导入 Bootstrap
-
将
module.rules加载器链添加到webpack.config.js(顺序很重要:sass-loader编译,postcss-loader运行 Autoprefixer,css-loader解析导入,style-loader注入 CSS):'use strict' const path = require('path') const autoprefixer = require('autoprefixer') const HtmlWebpackPlugin = require('html-webpack-plugin') module.exports = { mode: 'development', entry: './src/js/main.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist') }, devServer: { static: path.resolve(__dirname, 'dist'), port: 8080, hot: true }, plugins: [ new HtmlWebpackPlugin({ template: './src/index.html' }) ], module: { rules: [ { test: /\.(scss)$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader' }, { loader: 'postcss-loader', options: { postcssOptions: { plugins: [ autoprefixer ] } } }, { loader: 'sass-loader' } ] } ] } } -
src/scss/styles.scss— 使用@use导入源 Sass(切勿使用@import):// Import all of Bootstrap's CSS @use "bootstrap/scss/bootstrap";若要自定义,请覆盖 Bootstrap 的 CSS 令牌映射(
$root-tokens、$*-tokens)——请参阅自定义 › Sass。在 Sass 中,令牌名称不带前缀;Bootstrap 的 dist/CDN CSS 会通过 PostCSS 添加--bs-前缀,因此自行编译源代码时,令牌名称会保持不带前缀。 -
src/js/main.js— 加载 CSS 并导入 Bootstrap 的 JS。Floating UI 和 Vanilla Calendar Pro 会通过 Bootstrap 自动导入:// Import our custom CSS, then all of Bootstrap’s JS import '../scss/styles.scss' import * as bootstrap from 'bootstrap'仅导入所需的插件,以减小打包体积:
import { Tooltip, Toast, Popover } from 'bootstrap'
步骤 5:验证
- 运行
npm start并打开http://localhost:8080——.container和.btn-solid.theme-primary按钮应已应用样式。 - 确认控制台没有模块解析或加载器错误。
- 触发一个 JS 组件(工具提示/对话框),确认 JS 包正常工作。
- Bootstrap 6 需要使用支持
oklch()和color-mix()的浏览器。
步骤 6(可选):生产环境优化
正常运行不需要这些优化;仅在需要时应用。
- 将 CSS 提取到文件中(适用于严格的 CSP,或避免生成较大的 JS 包):安装
mini-css-extract-plugin,将style-loader替换为miniCssExtractPlugin.loader,添加该插件,然后从 HTML 链接生成的dist/main.css。 - 提取内联 SVG:Bootstrap 的 CSS 通过内联
data:URI 引用 SVG。如果 CSP 阻止data:图片,请添加一条 Webpack asset-module 规则,将mimetype: 'image/svg+xml'/scheme: 'data'与type: 'asset/resource'匹配,以便将它们输出为文件。
完整参考请参阅 twbs/examples Webpack 项目。