Punktem użyciu CDN jest to, że szybciej , przede wszystkim dlatego, że jest rozprowadzany siecią, ale po drugie, ponieważ pliki statyczne są buforowane przez przeglądarkę, a szanse są wysokie, że, na przykład, CDN jest jquery
biblioteka, że strona użycie zostało już pobrane przez przeglądarkę użytkownika, a zatem plik został buforowany, a zatem niepotrzebne jest pobieranie. Biorąc to pod uwagę, nadal dobrym pomysłem jest zapewnienie rezerwy .
Teraz punkt pakietu npm bootstrap
jest to, że zapewnia on plik javascript bootstrap jako moduł . Jak już wspomniano powyżej, to sprawia, że możliwe require
jest przy użyciu browserify , który jest najprawdopodobniej przypadek użycia i, jak rozumiem, głównym powodem bootstrap publikowane na KMP.
Jak tego użyć
Wyobraź sobie następującą strukturę projektu:
projekt
| - moduły_węzła
| - publiczny
| | - css
| | - img
| | - js
| | - index.html
| - pakiet.json
W twoim index.html
możesz odwoływać się zarówno css
do js
plików, jak i do takich:
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
Który jest najprostszy i popraw .css
pliki. Ale o wiele lepiej jest umieścić taki bootstrap.js
plik gdzieś w swoich public/js/*.js
plikach:
var bootstrap = require('bootstrap');
I dołączasz ten kod tylko do tych javascript
plików, w których naprawdę potrzebujesz bootstrap.js
. Browserify zajmuje się dołączeniem tego pliku.
Wadą jest to, że masz teraz pliki interfejsu jako node_modules
zależności, a node_modules
folder zwykle nie jest rejestrowany za pomocą git
. Myślę, że jest to najbardziej kontrowersyjna część, z wieloma opiniami i rozwiązaniami .
AKTUALIZACJA Marzec 2017
Minęły prawie dwa lata, odkąd napisałem tę odpowiedź, i aktualizacja jest na miejscu.
Teraz powszechnie akceptowanym sposobem jest użycie Bundler jak WebPack (lub inny Bundler wyboru), aby zawierać wszystkie swoje aktywa na etapie kompilacji.
Po pierwsze, pozwala na użycie składni commonjs podobnie jak browserify, więc aby dołączyć kod js bootstrap do swojego projektu, wykonaj to samo:
const bootstrap = require('bootstrap');
Co do css
plików, WebPack jest tak zwane „ ładowarki ”. Pozwalają ci napisać to w kodzie js:
require('bootstrap/dist/css/bootstrap.css');
a pliki css będą „magicznie” zawarte w twojej kompilacji. Będą one dynamicznie dodawane jako <style />
tagi podczas działania aplikacji, ale możesz skonfigurować webpack, aby eksportował je jako osobny css
plik. Możesz przeczytać więcej na ten temat w dokumentacji pakietu.
Podsumowując
- Powinieneś „powiązać” swój kod aplikacji z pakietem
- Nie powinieneś zatwierdzać ani
node_modules
git, ani dynamicznie budowanych plików. Możesz dodać build
skrypt do npm, który powinien zostać użyty do wdrożenia plików na serwerze. W każdym razie można to zrobić na różne sposoby, w zależności od preferowanego procesu kompilacji.