Скачать Bootstrap5 с помощью npm

Посмотрел пару видео о том, как установить Bootstrap5. Рассмотрено было 2 способа:

  1. с помощью CDN
  2. с помощью npm

В принципе эти же способы упоминаются на официальном сайте.

Способ 1: подключаем с помощью CDN:

Создаю файл index.html и пишу там такой код:

<!doctype html>
<html lang="ru">
<head>
    <title>Заголовок</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"
          rel="stylesheet"
          integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
          crossorigin="anonymous">

</head>
<body>

    <div class="container">
        <button class="btn btn-primary">Button 1</button>
    </div>

    <!--
        Дополнительный JavaScript: Bootstrap в связке с Popper
    -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
            crossorigin="anonymous"></script>

</body>
</html>

Тут сначала подключают CSS-стили с помощью тега link. И в конце, перед закрытием тега body подключают некий JS-файл. А что, кстати, такое этот самый Popper? Если я правильно понял, это некая js-библиотека, которую используют в работе некоторые компоненты Bootstrap.

Далее открываю этот файл index.html в браузере и вижу, что к кнопке Button 1 применились стили, значит Bootstrap подключился.

Способ 2: используем npm

Сначала скачиваю внутрь проекта Bootstrap командой npm install [email protected]. В результате появилась папка node_modules/bootstrap которая содержит все файлы Bootstrap. И далее создают файл index.html:

<!doctype html>
<html lang="ru">
<head>
    <title>Заголовок</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="node_modules/bootstrap/dist/css/bootstrap.css" rel="stylesheet">

</head>
<body>

    <div class="container">
        <button class="btn btn-primary">Button 2</button>
    </div>

</body>
</html>

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

Но тут возникает сразу вопрос: а почему в 1 способе (используя CDN) нам необходимо было помимо CSS добавить ещё JS-файл https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js (в конце body) ,а во втором способе его уже не подключают. Почему так?

Тем более, я поискал в папке node_modules/bootstrap и нашёл похожий файл: node_modules/bootstrap/dist/js/bootstrap.bundle.js И я бы написал файл inde.html вот так:

<!doctype html>
<html lang="ru" xmlns="http://www.w3.org/1999/html">
<head>
    <title>Заголовок</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="node_modules/bootstrap/dist/css/bootstrap.css" rel="stylesheet">

</head>
<body>

    <div class="container">
        <button class="btn btn-primary">Button 22</button>
    </div>

    <!-- ПОЧЕМУ ЭТОТ ФАЙЛ НЕ НУЖЕН ????  -->
    <script src="node_modules/bootstrap/dist/js/bootstrap.bundle.js"></script>


</body>
</html>

т.е. аналогично 1-му способу подключил бы и CSS-файл и JS-файл.

Объясните пожалуйста, почему JS-файл нужен только в случае использования подключения через CDN ?


Ответы (0 шт):