向 Bootstrap 贡献代码
了解如何使用 Bootstrap 的文档,构建脚本和测试等资源进行开发。
工具设置
Bootstrap 使用 npm 脚本 来构建文档和编译源代码文件。 我们的 package.json 包含用于编译源代码、运行测试等的这些脚本。
要使用我们的构建系统并在本地运行我们的文档,您需要一份 Bootstrap 源代码和安装好 Node.js 环境。 按照下面的步骤操作
- 下载并安装 Node.js,用来管理我们的依赖关系。
- 下载一份 Bootstrap 的源代码 或者 fork Bootstrap 的仓库.
- 导航到
/bootstrap
目录并运行npm install
安装在 package.json 文件中列出的依赖。
使用 npm 脚本
我们的 package.json 包含许多用于开发项目的任务。 运行 npm run
以查看终端中的所有 npm 脚本。 主要任务包括:
任务 | 描述 |
---|---|
npm start
|
编译 CSS 和 JavaScript, 构建文档, 并启动本地服务器。 |
npm run dist
|
创建 dist/ 文件夹,并编译源代码存放到此文件夹。 需要安装并使用 Sass, Autoprefixer, 和 terser。
|
npm test
|
运行 npm run dist 后在本地运行测试。
|
npm run docs-serve
|
在本地构建和运行文档。 |
Sass
Bootstrap 使用 Dart Sass 将我们的 Sass 源代码文件编译成 CSS 样式文件(在我们的构建过程中)。 我们之前用 Node Sass 来编译 Bootstrap v4,但 LibSass 和基于它构建的包(包括 Node Sass),现在已弃用 。
Autoprefixer
Bootstrap 使用 Autoprefixer 在构建时自动将浏览器前缀添加到需要的 CSS 属性。 这样做可以让我们一次性编写 CSS 的所有浏览器前缀部分,同时消除对 v3 中的浏览器 mixin 的需求,从而节省了我们的时间和代码量。
我们在 GitHub 仓库的一个单独的文件中维护了 Autoprefixer 支持的浏览器列表。 详见.browserslistrc。
RTLCSS
Bootstrap 使用 RTLCSS 处理编译后的 CSS 并将它们转换为 RTL - 基本上水平方向属性(例如。padding-left
) 都替换为与他们相反的属性。 它允许我们只编写一次 CSS 并使用 RTLCSS control 和 value 指令做小的调整。
在本地运行文档
在本地运行我们的文档需要使用 Hugo,它通过 hugo-bin npm 包安装。 Hugo 是一个非常快速且可扩展的静态站点生成器,它为我们提供:包含功能(可以在一个文件中引用另一个文件的内容)、支持 Markdown 文件、模板等。 请查看以下使用步骤:
- 运行上面的 工具配置 以安装所有依赖项。
- 从
/bootstrap
目录,在命令行中运行npm run docs-serve
。 - 在浏览器中打开
http://localhost:9001/
,然后就可以在本地查看文档了。
阅读 Hugo 文档,了解有关使用 Hugo 的更多信息。
故障排除
如果您在安装依赖项时遇到问题,请卸载所有以前的依赖项版本(全局和本地)。 然后,重新运行 npm install
。