From 812585627239f4dd77c8cd97309138945c85ae91 Mon Sep 17 00:00:00 2001 From: eldk Date: Thu, 11 Feb 2021 07:22:20 +0100 Subject: [PATCH] Add Parcel Bundler doc (#30909) * Add Parcel Bundler doc * Update parcel.md * Improve parcel.md Co-authored-by: XhmikosR Co-authored-by: Mark Otto --- .../docs/5.0/getting-started/parcel.md | 99 +++++++++++++++++++ site/data/sidebar.yml | 1 + 2 files changed, 100 insertions(+) create mode 100644 site/content/docs/5.0/getting-started/parcel.md diff --git a/site/content/docs/5.0/getting-started/parcel.md b/site/content/docs/5.0/getting-started/parcel.md new file mode 100644 index 0000000000..000c0d6770 --- /dev/null +++ b/site/content/docs/5.0/getting-started/parcel.md @@ -0,0 +1,99 @@ +--- +layout: docs +title: Parcel +description: Learn how to include Bootstrap in your project using Parcel. +group: getting-started +toc: true +--- + +## Install Parcel + +Install [Parcel Bundler](https://en.parceljs.org/getting_started.html). + +## Install Bootstrap + +[Install bootstrap]({{< docsref "/getting-started/download#npm" >}}) as a Node.js module using npm. + +Bootstrap depends on [Popper](https://popper.js.org/), which is specified in the `peerDependencies` property. This means that you will have to make sure to add both of them to your `package.json` using `npm install popper.js`. + +When all will be completed, your project will be structured like this: + +```text +project-name/ +├── build/ +├── node_modules/ +│ └── bootstrap/ +│ └── popper.js/ +├── scss/ +│ └── custom.scss +├── src/ +│ └── index.html +│ └── index.js +└── package.json +``` + +## Importing JavaScript + +Import [Bootstrap's JavaScript]({{< docsref "/getting-started/javascript" >}}) in your app's entry point (usually `src/index.js`). You can import all our plugins in one file or separately if you require only a subset of them. + +```js +// Import all plugins +import * as bootstrap from 'bootstrap'; + +// Or import only needed plugins +import { Tooltip as Tooltip, Toast as Toast, Popover as Popover } from 'bootstrap'; + +// Or import just one +import Alert as Alert from '../node_modules/bootstrap/js/dist/alert'; +``` + +## Importing CSS + +To utilize the full potential of Bootstrap and customize it to your needs, use the source files as a part of your project's bundling process. + +Create your own `scss/custom.scss` to [import Bootstrap's Sass files]({{< docsref "/customize/sass#importing" >}}) and then override the [built-in custom variables]({{< docsref "/customize/sass#variable-defaults" >}}). + +## Build app + +Include `src/index.js` before the closing `` tag. + +```html + + + + + + + + + + +``` + +### Edit `package.json` + +Add `dev` and `build` scripts in your `package.json` file. + +```json +"scripts": { + "dev": "parcel ./src/index.html", + "prebuild": "npx rimraf build", + "build": "parcel build --public-url ./ ./src/index.html --experimental-scope-hoisting --out-dir build" +} +``` + +### Run dev script + +Your app will be accessible at `http://127.0.0.1:1234`. + +```sh +npm run dev +``` + +### Build app files + +Built files are in the `build/` folder. + +```sh +npm run build +``` diff --git a/site/data/sidebar.yml b/site/data/sidebar.yml index 4d7c9ff84e..2c8f9b45c9 100644 --- a/site/data/sidebar.yml +++ b/site/data/sidebar.yml @@ -10,6 +10,7 @@ - title: JavaScript - title: Build tools - title: Webpack + - title: Parcel - title: Accessibility - title: RFS - title: RTL