Сенс використання CDN полягає в тому, що це швидше , по-перше, тому, що це розподілена мережа, а по-друге, тому, що статичні файли кешуються браузерами, і шанси вищі, ніж, наприклад, jqueryбібліотека CDN, що знаходиться на вашому веб-сайті Користувач уже завантажив браузер користувача, тому файл був кешований, тому не завантажується зайве. Незважаючи на це, це все-таки хороша ідея забезпечити резерв .
Тепер суть npm-пакету bootstrap
полягає в тому, що він надає файл JavaScript в якості модуля bootstrap як модуль . Як вже було сказано вище, це дає змогу зробити requireце за допомогою браузера , що є найімовірнішим випадком використання, і, наскільки я розумію, основною причиною завантаження завантажувальної програми в npm.
Як ним користуватися
Уявіть таку структуру проекту:
проект
| - модулі node_
| - громадські
| | - css
| | - імг
| | - js
| | - index.html
| - package.json
У ваших index.htmlви можете посилатися як cssі jsфайли , як це:
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
Який найпростіший спосіб і правильний для .cssфайлів. Але набагато краще включити такий bootstrap.jsфайл десь у свої public/js/*.jsфайли:
var bootstrap = require('bootstrap');
І ви включаєте цей код лише в ті javascriptфайли, де вам фактично потрібен bootstrap.js. Browserify піклується про включення цього файлу для вас.
Тепер недоліком є те, що тепер у вас node_modulesзалежні файли як залежності, а node_modulesпапка зазвичай не зареєстрована git. Я думаю, що це найбільш суперечлива частина, що має багато думок та рішень .
ОНОВЛЕННЯ Березень 2017 року
Майже два роки минуло, як я написав цю відповідь, і оновлення вже є.
Зараз загальноприйнятим способом є використання такого пакета, як webpack (або іншого постачальника за вибором), щоб поєднати всі ваші активи на етапі збирання.
По-перше, це дозволяє використовувати синтаксис commonjs так само, як і переглядати, тому для включення коду bootstrap js у ваш проект ви робите те саме:
const bootstrap = require('bootstrap');
Що стосується cssфайлів, webpack має так звані " завантажувачі ". Вони дозволяють записати це у свій js-код:
require('bootstrap/dist/css/bootstrap.css');
і файли css будуть "магічно" включені у вашу збірку. Вони будуть динамічно додаватися як <style />теги під час запуску програми, але ви можете налаштувати веб-пакет, щоб експортувати їх як окремий cssфайл. Більше про це можна прочитати в документації на веб-пакет.
На закінчення.
- Вам слід "зв’язати" код програми з постачальником
- Ви не повинні виконувати ні
node_modulesgit, ні динамічно складені файли. Ви можете додати buildскрипт до npm, який слід використовувати для розгортання файлів на сервері. У будь-якому випадку це можна зробити по-різному, залежно від бажаного процесу збирання.