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

Установка
Мы создаем проект Webpack с Bootstrap с нуля, поэтому есть некоторые предварительные условия и предварительные шаги, прежде чем мы действительно сможем начать. Это руководство требует, чтобы у вас был установлен Node.js и вы немного знакомы с терминалом.
Создайте папку проекта и установите npm. Мы создадим папку
my-projectи инициализируем npm с аргументом-y, чтобы он не задавал нам все интерактивные вопросы.mkdir my-project &&cd my-project npm init -yУстановите Webpack. Затем нам нужно установить наши зависимости для разработки Webpack:
webpackдля ядра Webpack,webpack-cli, чтобы мы могли запускать команды Webpack из терминала, иwebpack-dev-server, чтобы мы могли запускать локальный сервер разработки. . Мы используем--save-dev, чтобы указать, что эти зависимости предназначены только для использования в разработке, а не для производства.npm i --save-dev webpack webpack-cli webpack-dev-serverУстановите Bootstrap. Теперь мы можем установить Bootstrap. Мы также установим Popper, так как наши раскрывающиеся списки, всплывающие окна и всплывающие подсказки зависят от его позиционирования. Если вы не планируете использовать эти компоненты, вы можете опустить здесь Popper.
npm i --save bootstrap @popperjs/coreУстановите дополнительные зависимости. В дополнение к Webpack и Bootstrap нам нужно еще несколько зависимостей, чтобы правильно импортировать и связывать CSS и JS Bootstrap с Webpack. К ним относятся Sass, некоторые загрузчики и Autoprefixer.
npm i --save-dev autoprefixer css-loader postcss-loader sass sass-loader style-loader
Теперь, когда у нас установлены все необходимые зависимости, мы можем приступить к созданию файлов проекта и импорту Bootstrap.
Структура проекта
Мы уже создали папку my-project и инициализировали npm. Теперь мы также создадим наши папки src и dist, чтобы завершить структуру проекта. Запустите следующее из my-project или вручную создайте структуру папок и файлов, показанную ниже.
mkdir {dist,src,src/js,src/scss}touch dist/index.html src/js/main.js src/scss/styles.scss webpack.config.js
Когда вы закончите, ваш полный проект должен выглядеть так:
my-project/
├── dist/
│ └── index.html
├── src/
│ ├── js/
│ │ └── main.js
│ └── scss/
│ └── styles.scss
├── package-lock.json
├── package.json
└── webpack.config.js
На данный момент все в порядке, но Webpack не будет работать, потому что мы еще не заполнили наш webpack.config.js.
Кофигурация Webpack
С установленными зависимостями и готовой папкой проекта для начала написания кода мы теперь можем настроить Webpack и запустить наш проект локально.
Откройте
webpack.config.jsв вашем редакторе. Поскольку он пуст, нам нужно добавить в него шаблонную конфигурацию, чтобы мы могли запустить наш сервер. Эта часть конфигурации сообщает Webpack, что нужно искать JavaScript нашего проекта, куда выводить скомпилированный код (dist) и как должен вести себя сервер разработки (извлечение из папкиdistс горячей перезагрузкой).constpath=require('path')module.exports={entry:'./src/js/main.js',output:{filename:'main.js',path:path.resolve(__dirname,'dist')},devServer:{static:path.resolve(__dirname,'dist'),port:8080,hot:true}}Далее мы заполняем наш
dist/index.html. Это HTML-страница, которую Webpack загрузит в браузер, чтобы использовать связанные CSS и JS, которые мы добавим к ней на последующих этапах. Прежде чем мы сможем это сделать, мы должны дать ему что-то для рендеринга и включитьoutputJS из предыдущего шага.<!doctype html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1"><title>Bootstrap w/ Webpack</title></head><body><divclass="container py-4 px-3 mx-auto"><h1>Hello, Bootstrap and Webpack!</h1><buttonclass="btn btn-primary">Primary button</button></div><scriptsrc="./main.js"></script></body></html>Мы добавили сюда немного стилей Bootstrap с помощью
div class="container"и<button>, чтобы мы видели, когда CSS Bootstrap загружается Webpack.Теперь нам нужен скрипт npm для запуска Webpack. Откройте
package.jsonи добавьте сценарийstart, показанный ниже (у вас уже должен быть тестовый сценарий). Мы будем использовать этот скрипт для запуска нашего локального сервера разработки Webpack.{// ... "scripts":{"start":"webpack serve --mode development","test":"echo \"Error: no test specified\" && exit 1"},// ... }И, наконец, мы можем запустить Webpack. Из папки
my-projectв вашем терминале запустите только что добавленный скрипт npm:npm start
В следующем и последнем разделе этого руководства мы настроим загрузчики Webpack и импортируем весь CSS и JavaScript Bootstrap.
Импорт Bootstrap
Для импорта Bootstrap в Webpack требуются загрузчики, которые мы установили в первом разделе. Мы установили их с помощью npm, но теперь необходимо настроить Webpack для их использования.
Настройте загрузчики в
webpack.config.js. Ваш файл конфигурации готов и должен соответствовать приведенному ниже фрагменту. Единственная новая часть здесь — разделmodule.constpath=require('path')module.exports={entry:'./src/js/main.js',output:{filename:'main.js',path:path.resolve(__dirname,'dist')},devServer:{static:path.resolve(__dirname,'dist'),port:8080,hot:true},module:{rules:[{test:/\.(scss)$/,use:[{loader:'style-loader'},{loader:'css-loader'},{loader:'postcss-loader',options:{postcssOptions:{plugins:()=>[require('autoprefixer')]}}},{loader:'sass-loader'}]}]}}Вот краткий обзор того, зачем нам нужны все эти загрузчики.
style-loaderвставляет CSS в элемент<style>в<head>HTML-страницы,css-loaderпомогает использовать@importиurl(),postcss-loaderтребуется для Autoprefixer, аsass-loaderпозволяет нам использовать Sass.Теперь давайте импортируем Bootstrap CSS. Добавьте следующее в
src/scss/styles.scss, чтобы импортировать весь исходный код Bootstrap Sass.// Import all of Bootstrap's CSS @import"~bootstrap/scss/bootstrap";Вы также можете импортировать наши таблицы стилей по отдельности, если хотите. Прочитайте нашу документацию по импорту Sass для подробностей.
Далее мы загружаем CSS и импортируем JavaScript из Bootstrap. Добавьте следующее в
src/js/main.js, чтобы загрузить CSS и импортировать все JS из Bootstrap. Поппер будет автоматически импортирован через Bootstrap.// Импортируйте наш пользовательский CSS import'../scss/styles.scss'// Импортируйте весь JS Bootstrap import*asbootstrapfrom'bootstrap'Вы также можете импортировать плагины JavaScript по отдельности, если это необходимо, чтобы уменьшить размеры пакетов:
importAlertfrom'bootstrap/js/dist/alert'// или укажите, какие плагины вам нужны: import{Tooltip,Toast,Popover}from'bootstrap'Прочитайте нашу документацию по JavaScript для получения дополнительной информации о том, как использовать плагины Bootstrap.
И готово! 🎉 С полностью загруженным исходным кодом Bootstrap Sass и JS ваш локальный сервер разработки теперь должен выглядеть так.

Теперь вы можете начать добавлять любые компоненты Bootstrap, которые хотите использовать. Обязательно ознакомьтесь с полным примером проекта Webpack, чтобы узнать, как включить дополнительный пользовательский Sass и оптимизировать сборку, импортируя только части CSS Bootstrap. и JS, которые вам нужны.
Видите здесь что-то неправильное или устаревшее? Пожалуйста, откройте вопрос на GitHub. Нужна помощь в устранении неполадок? Выполните поиск или начните обсуждение на GitHub.