Смысл использования CDN заключается в том, что он быстрее , во-первых, потому что это распределенная сеть, а во-вторых, потому что статические файлы кэшируются браузерами и высоки шансы, например, jquery
библиотеки CDN, что ваш сайт Пользователь уже загружал браузер пользователя, и, следовательно, файл был кэширован, и, следовательно, ненужная загрузка не происходит. Тем не менее, это все еще хорошая идея, чтобы обеспечить запасной вариант .
Теперь точка загрузки пакета npm
является то, что он предоставляет файл Javascript начальной загрузки в качестве модуля . Как было упомянуто выше, это дает ему возможность require
использовать browserify , который является наиболее вероятным вариантом использования и, как я понимаю, основной причиной публикации загрузчика на npm.
Как это использовать
Представьте себе следующую структуру проекта:
проект
| - node_modules
| - общедоступный
| | - css
| | - img
| | - 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 (или другой Bundler выбора) , чтобы связать все свои активы на стадии сборки.
Во-первых, он позволяет вам использовать синтаксис commonjs точно так же, как browserify, поэтому, чтобы включить загрузочный код js в ваш проект, вы делаете то же самое:
const bootstrap = require('bootstrap');
Что касается css
файлов, в webpack есть так называемые « загрузчики ». Они позволяют вам написать это в своем коде JS:
require('bootstrap/dist/css/bootstrap.css');
и CSS-файлы будут «волшебным образом» включены в вашу сборку. Они будут динамически добавляться в виде <style />
тегов при запуске приложения, но вы можете настроить веб-пакет для экспорта их в виде отдельного css
файла. Вы можете прочитать больше об этом в документации веб-пакета.
В заключение.
- Вы должны «связать» код своего приложения с помощью упаковщика
- Вы не должны фиксировать ни
node_modules
git, ни динамически создаваемые файлы. Вы можете добавить build
скрипт в npm, который следует использовать для развертывания файлов на сервере. В любом случае, это можно сделать по-разному, в зависимости от предпочитаемого вами процесса сборки.