Зарегистрируйтесь, чтобы продолжить обучение

Установка Bootstrap 5: Продвинутый уровень

В базовом курсе Bootstrap рассматривалась установка фреймворка с помощью простого подключения готового CSS-файла.

Такой способ позволяет использовать возможности бутстрап как библиотеки:

  • Добавление компонентов

  • Утилиты

  • Готовые базовые стили для страницы

При создании небольшого проекта, например, личной страницы, этих возможностей будет достаточно. Также Bootstrap подойдет, если вас устраивает дизайн-система и набор стандартных компонентов.

Если же задача состоит в создании нового дизайна в рамках системы Bootstrap, то необходимо использовать не готовый CSS-файл, а файлы препроцессора SASS.

В этом уроке мы узнаем, как добавить бутстрап в виде npm-пакета и подключить его к проекту.

Устанавливаем Bootstrap

Чтобы получить доступ к SASS-файлам, нужно установить проект в виде npm-зависимости. Для этого создайте директорию под проект и выполните команду npm install bootstrap. Предварительно инициализируйте npm-проект командой npm init:

Инициализация проекта
Инициализация проекта
Установка Bootstrap
Установка Bootstrap

Для удобной работы с Bootstrap в вашей системе должен быть установлен препроцессор SASS и любой удобный сборщик. В качестве сборщика в этом курсе будет использован Gulp. Главное — быстро конвертировать SASS в CSS.

Подключаем Bootstrap

В ближайших уроках мы будем подключать Bootstrap полностью, но это не обязательно. В уроке про оптимизацию проекта мы научимся подключать только те компоненты и части бутстрап, которые нужны в нашем проекте.

После установки пакета главный файл SASS будет располагаться по пути директория-вашего-проекта/node_modules/bootstrap/scss/bootstrap.scss. Вот возможная структура проекта:

bootstrap-project/
├── app/
│   ├── scss/
│   │   └── main.scss
|   └── index.pug
├── build/
├── node_modules/
├── package-lock.json
├── package.json
└── gulpfile.js

В этой структуре файл SASS находится внутри директории app/scss, значит, подключение будет выглядеть так:

@import "../../node_modules/bootstrap/scss/bootstrap.scss";

После сборки проекта все стили будут переведены в обычный CSS. Для сборки используем Gulp с такой конфигурацией:

const { src, dest, parallel, watch } = require('gulp');
const concat = require('gulp-concat');
const sass = require('gulp-sass')(require('sass'));
const pug = require('gulp-pug');
const browserSync = require('browser-sync').create();

const browsersync = () => {
  browserSync.init({
    server: { baseDir: 'build/' },
    notify: false,
    online: true
  });

  watch('./app/**/*.js', scripts);
	watch('./app/**/*.scss', sass2css);
	watch('./app/**/*.pug', pug2html);
};

const scripts = () => {
  return src([
    './node_modules/bootstrap/dist/js/bootstrap.min.js',
    './node_modules/bootstrap/dist/js/bootstrap.min.js.map',
  ])
  .pipe(dest('./build/js/'))
  .pipe(browserSync.stream())
};

const sass2css = () => {
  return src([
    './app/scss/main.scss'
  ])
  .pipe(sass())
  .pipe(concat('main.css'))
  .pipe(dest('./build/styles/'))
  .pipe(browserSync.stream())
};

const pug2html = () => {
  return src([
    './app/index.pug',
  ])
  .pipe(pug())
  .pipe(dest('./build/'))
  .pipe(browserSync.stream())
};

exports.build = parallel(scripts, sass2css, pug2html);
exports.default = browsersync;

Вы можете скопировать структуру из урока, установить нужные пакеты и использовать приведенный Gulp-файл.

Выводы

Если в проекте используется Bootstrap с собственным дизайном, то вместо исправления CSS-файла стоит подключить фреймворк с помощью npm. Для этого используется команда npm install bootstrap, которая установит последнюю версию бутстрапа.

Для подключения всего бутстрап достаточно подключить основной файл bootstrap.scss, который находится по пути node_modules/bootstrap/scss/.

Чтобы комфортно работать с бутстрап, необходимо иметь установленный препроцессор SASS, который сможет компилировать файлы препроцессора в CSS. Полезным будет использование сборщика проектов или таск-менеджера, например, Gulp.

В рамках обучения на Хекслете есть курсы по SASS и Gulp. Ссылки на курсы будут в конце этого урока.


Самостоятельная работа

  1. Создайте новый npm-проект с помощью команды npm init

  2. Установите в проект Bootstrap, Gulp и все необходимы зависимости. Можете установить зависимости позже, на этапе запуска задач Gulp

  3. Создайте все недостающие файлы и папки, как указано в уроке. Скопируйте конфигурацию Gulp и подключите стили бутстрапа в файл main.scss, как указано в уроке

  4. Добавьте в файл index.pug верстку, содержащую элементы бутстрапа. Например:

    doctype html
    html(lang="ru")
      head
        meta(charset="UTF-8")
        title Bootstrap Advanced
        meta(name="viewport" content="width=device-width,initial-scale=1")
        meta(name="description" content="")
        link(rel="stylesheet" type="text/css" href="styles/main.css")
      body
        div.container
          div.row
            div.col Column 1
            div.col Column 2
            div.col Column 3
          div.row
            div.col First
            div.col Second
            div.col Third
  5. Запустите сборку проекта командой npx gulp build. Затем запустите приложение командой npx gulp. В результате должна открыться страница в браузере. Убедитесь, что стили бутстрапа корректно отображаются. Например, колонки из примера выше:

    Пример

В следующих самостоятельных работах вы можете использовать этот проект или создавать новый.


Дополнительные материалы

  1. SASS - Основы работы
  2. Gulp

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»