有关如何使用 Parcel 将 Bootstrap 的 CSS 和 JavaScript 包含在项目中并将其捆绑在一起的官方指南。

想跳到最后吗?从 twbs/examples 存储库下载本指南的源代码和工作演示。您也可以在 StackBlitz 中打开该示例,但不运行它,因为该示例当前不支持 Parcel。
什么是包裹?
Parcel 是一个 Web 应用程序捆绑器,旨在通过开箱即用的零配置设置来简化开发过程。它提供了更高级的捆绑器中的功能,同时注重易用性,非常适合寻求快速入门的开发人员。
设置
我们正在使用 Bootstrap 从头开始构建一个 Parcel 项目,因此在我们真正开始之前,有一些先决条件和前期步骤。本指南要求您安装Node.js并熟悉终端。
创建一个项目文件夹并设置 npm。我们将创建文件夹并使用参数初始化 npm,以避免它问我们所有的交互式问题。my-project-y
mkdir my-project && cd my-project
npm init -y安装包裹。与我们的 Webpack 指南不同,这里只有一个构建工具依赖项。Parcel 将在检测到语言转换器(如 Sass)时自动安装它们。我们过去用来表示这种依赖关系仅用于开发用途,而不是用于生产。--save-dev
npm i --save-dev parcel安装 Bootstrap。现在我们可以安装 Bootstrap。我们还将安装 Popper,因为我们的下拉菜单、弹出框和工具提示都依赖于它来定位。如果您不打算使用这些组件,可以在此处省略 Popper。
npm i --save bootstrap @popperjs/core现在我们已经安装了所有必要的依赖项,我们可以开始创建项目文件和导入 Bootstrap。
项目结构
我们已经创建了文件夹并初始化了 npm。现在我们还将创建文件夹、样式表和 JavaScript 文件来完善项目结构。从 运行以下作,或手动创建如下所示的文件夹和文件结构。my-projectsrcmy-project
mkdir {src,src/js,src/scss}
touch src/index.html src/js/main.js src/scss/styles.scss
完成后,您的完整项目应如下所示:
my-project/
├── src/
│ ├── js/
│ │ └── main.js
│ ├── scss/
│ │ └── styles.scss
│ └── index.html
├── package-lock.json
└── package.json
此时,一切都在正确的位置,但 Parcel 需要一个 HTML 页面和 npm 脚本来启动我们的服务器。
配置宗地
安装依赖项并准备好我们的项目文件夹以开始编码后,我们现在可以配置 Parcel 并在本地运行我们的项目。Parcel 本身在设计上不需要配置文件,但我们确实需要一个 npm 脚本和一个 HTML 文件来启动我们的服务器。
填写 src/index.html 文件。Parcel 需要一个页面来渲染,因此我们使用页面来设置一些基本的 HTML,包括我们的 CSS 和 JavaScript 文件。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/ Parcel</title>
<link rel="stylesheet" href="scss/styles.scss">
<script type="module" src="js/main.js"></script>
</head>
<body>
<div class="container py-4 px-3 mx-auto">
<h1>Hello, Bootstrap and Parcel!</h1>
<button class="btn btn-primary">Primary button</button>
</div>
</body>
</html>我们在这里使用 and 包含一些 Bootstrap 样式,以便我们看到 Bootstrap 的 CSS 何时被 Parcel 加载。div class="container"<button>Parcel 会自动检测到我们正在使用 Sass 并安装 Sass Parcel 插件来支持它。但是,如果您愿意,您也可以手动运行 .npm i --save-dev @parcel/transformer-sass
添加 Parcel npm 脚本。打开 并将以下脚本添加到对象。我们将使用此脚本启动 Parcel 开发服务器,并在编译到目录后渲染我们创建的 HTML 文件。package.jsonstartscriptsdist
{
// ...
"scripts": {
"start": "parcel serve src/index.html --public-url / --dist-dir dist",
"test": "echo "Error: no test specified" && exit 1"
},
// ...
}最后,我们可以启动 Parcel。从终端的文件夹中,运行新添加的 npm 脚本:my-project
npm start
在本指南的下一节也是最后一节中,我们将导入 Bootstrap 的所有 CSS 和 JavaScript。
导入 Bootstrap
将 Bootstrap 导入 Parcel 需要两次导入,一次导入到 our,一次导入 our。styles.scssmain.js
导入 Bootstrap 的 CSS。添加以下内容以导入 Bootstrap 的所有源 Sass。src/scss/styles.scss
// Import all of Bootstrap’s CSS
@import "bootstrap/scss/bootstrap";如果需要,您也可以单独导入我们的样式表。阅读我们的 Sass 导入文档了解详细信息。自选: 您可能会在最新版本的 Dart Sass 中看到 Sass 弃用警告。可以通过在根文件夹的文件中添加以下配置来静音这些警告,其中包含以下内容:.sassrc.js
module.exports = {
silenceDeprecations: ['import', 'mixed-decls', 'color-functions', 'global-builtin']
}导入 Bootstrap 的 JS。添加以下内容以导入 Bootstrap 的所有 JS。Popper 将通过 Bootstrap 自动导入。src/js/main.js
// Import all of Bootstrap’s JS
import * as bootstrap from 'bootstrap'您还可以根据需要单独导入 JavaScript 插件,以减小捆绑包大小:
import Alert from 'bootstrap/js/dist/alert'
// or, specify which plugins you need:
import { Tooltip, Toast, Popover } from 'bootstrap'阅读我们的 JavaScript 文档,了解有关如何使用 Bootstrap 插件的更多信息。
你完成了! 🎉完全加载 Bootstrap 的源 Sass 和 JS 后,您的本地开发服务器现在应该如下所示:
现在您可以开始添加任何要使用的 Bootstrap 组件。请务必查看完整的 Parcel 示例项目,了解如何包含其他自定义 Sass 并通过仅导入您需要的 Bootstrap CSS 和 JS 部分来优化您的构建。

