Bootstrap и Parcel

Официальное руководство по включению и объединению CSS и JavaScript Bootstrap в ваш проект с помощью Parcel.

Bootstrap и Parcel

Хотите перейти к концу? Загрузите исходный код и рабочую демонстрацию для этого руководства из репозитория twbs / examples. Вы также можете открыть пример в StackBlitz, но не запускать его, потому что Parcel в настоящее время там не поддерживается.

Настройка

Мы создаем проект Parcel с Bootstrap с нуля, поэтому есть некоторые предварительные условия и предварительные шаги, прежде чем мы сможем действительно приступить к работе. Это руководство требует от вас наличия Node.js установленного терминала и некоторого знакомства с ним.

  1. Создайте папку проекта и настройте npm. Мы создадим my-project папку и инициализируем npm с помощью -y аргумента, чтобы он не задавал нам все интерактивные вопросы.

    mkdir my-project && cd my-project
    npm init -y
  2. Установите Parcel. В отличие от нашего руководства по Webpack, здесь есть только одна зависимость от инструмента сборки. Parcel автоматически установит языковые преобразователи (например, Sass) по мере их обнаружения. Мы используем --save-dev, чтобы сигнализировать, что эта зависимость предназначена только для разработки, а не для производства.

    npm i --save-dev parcel
  3. Установите Bootstrap. Теперь мы можем установить Bootstrap. Мы также установим Popper, поскольку от него зависит расположение наших выпадающих списков, всплывающих окон и всплывающих подсказок. Если вы не планируете использовать эти компоненты, вы можете опустить Popper здесь.

    npm i --save bootstrap @popperjs/core

Теперь, когда у нас установлены все необходимые зависимости, мы можем приступить к работе по созданию файлов проекта и импорту Bootstrap.

Структура проекта

Мы уже создали my-project папку и инициализировали npm. Теперь мы также создадим нашу src папку, таблицу стилей и файл JavaScript, чтобы завершить структуру проекта. Выполните следующее из my-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-файл для запуска нашего сервера.

  1. Заполните src/index.html файл. Parcel нужна страница для рендеринга, поэтому мы используем нашу index.html страницу для настройки некоторых базовых HTML, включая файлы CSS и JavaScript.

    <!doctype html>
    <html lang="ru">
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Bootstrap и 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>Привет, Bootstrap и Parcel!</h1>
          <button class="btn btn-primary">Синяя кнопка</button>
        </div>
      </body>
    </html>

    Мы включили сюда немного стиля Bootstrap с помощью div class="container" и <button>, чтобы видеть, когда CSS Bootstrap загружается Parcel.

    Parcel автоматически обнаружит, что мы используем Sass, и установит плагин Sass Parcel для его поддержки. Однако, при желании, вы также можете запустить его вручную npm i --save-dev @parcel/transformer-sass.

  2. Добавьте скрипты npm Parcel. Откройте package.json и добавьте следующий start скрипт к scripts объекту. Мы будем использовать этот скрипт для запуска нашего сервера разработки Parcel и отображения созданного нами HTML-файла после его компиляции в dist каталог.

    {
       // ...
       "scripts": {
         "start": "parcel serve src/index.html --public-url / --dist-dir dist",
         "test": "echo \"Error: no test specified\" && exit 1"
       },
       // ...
    }
  3. И, наконец, мы можем запустить Parcel. Из my-project папки в вашем терминале запустите этот недавно добавленный скрипт npm:

    npm start
    Запущен сервер разработки Parcel

В следующем и последнем разделе этого руководства мы импортируем все CSS и JavaScript Bootstrap.

Импорт начальной загрузки

Для импорта Bootstrap в Parcel требуется два импорта: один в our styles.scss и один в our main.js.

  1. Импортируйте CSS Bootstrap. Добавьте следующее в src/scss/styles.scss, чтобы импортировать весь исходный код Sass Bootstrap.

    // Импортируйте весь CSS Bootstrap.
    @import "bootstrap/scss/bootstrap";

    При желании вы также можете импортировать наши таблицы стилей по отдельности. Прочитайте документы по импорту Sass для получения подробной информации.

  2. Импортируйте JS Bootstrap. Добавьте следующее в src/js/main.js, чтобы импортировать все JS Bootstrap. Popper будет автоматически импортирован через Bootstrap.

    // Импортируйте весь JS Bootstrap.
    import * as bootstrap from 'bootstrap'

    Вы также можете импортировать плагины JavaScript по отдельности по мере необходимости, чтобы уменьшить размеры пакетов:

    import Alert from 'bootstrap/js/dist/alert'
    
    // или укажите, какие плагины вам нужны:
    import { Tooltip, Toast, Popover } from 'bootstrap'

    Прочитайте наши документы по JavaScript для получения дополнительной информации об использовании плагинов Bootstrap.

  3. И готово! ? После полной загрузки исходных текстов Bootstrap Sass и JS ваш локальный сервер разработки теперь должен выглядеть следующим образом.

    Сервер разработки Parcel, работающий с Bootstrap

    Теперь вы можете начать добавлять любые компоненты Bootstrap, которые вы хотите использовать. Обязательно ознакомьтесь с полным примером проекта Parcel, чтобы узнать, как включить дополнительный пользовательский Sass и оптимизировать сборку, импортируя только те части Bootstrap CSS и JS, которые вам нужны.


Видите здесь что-то неправильное или устаревшее? Пожалуйста, откройте проблему на GitHub. Нужна помощь в устранении неполадок? Найдите или начните обсуждение на GitHub.