Der Sinn der Verwendung von CDN besteht darin, dass es schneller ist, zum einen, weil es sich um ein verteiltes Netzwerk handelt, zum anderen, weil die statischen Dateien von den Browsern zwischengespeichert werden und die Wahrscheinlichkeit hoch ist, dass beispielsweise die CDN- jquery
Bibliothek Ihre Site ist Verwendungen wurden bereits vom Browser des Benutzers heruntergeladen, und daher wurde die Datei zwischengespeichert, und daher findet kein unnötiger Download statt. Trotzdem ist es immer noch eine gute Idee , einen Fallback bereitzustellen .
Nun zum Punkt des npm-Pakets von bootstrap
ist, dass es die Javascript- Datei von Bootstrap als Modul bereitstellt . Wie oben erwähnt, ermöglicht dies die require
Verwendung von browserify , was der wahrscheinlichste Anwendungsfall und nach meinem Verständnis der Hauptgrund für die Veröffentlichung von Bootstrap auf npm ist.
Wie man es benutzt
Stellen Sie sich folgende Projektstruktur vor:
Projekt
| - Knotenmodule
| - öffentlich
| | - css
| | - img
| | - js
| | - index.html
| - package.json
In Ihrem können index.html
Sie beide css
und js
Dateien wie folgt referenzieren :
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
Welches ist der einfachste Weg und korrekt für die .css
Dateien. Es ist jedoch viel besser, die bootstrap.js
Datei wie diese irgendwo in Ihre public/js/*.js
Dateien aufzunehmen:
var bootstrap = require('bootstrap');
Und Sie fügen diesen Code nur in die javascript
Dateien ein, in denen Sie ihn tatsächlich benötigen bootstrap.js
. Browserify kümmert sich darum, diese Datei für Sie einzuschließen .
Der Nachteil ist nun, dass Sie jetzt Ihre Front-End-Dateien als node_modules
Abhängigkeiten haben und der node_modules
Ordner normalerweise nicht mit eingecheckt ist git
. Ich denke, dies ist der umstrittenste Teil mit vielen Meinungen und Lösungen .
UPDATE März 2017
Fast zwei Jahre sind vergangen, seit ich diese Antwort geschrieben habe und ein Update vorhanden ist.
Die allgemein akzeptierte Methode besteht nun darin, einen Bundler wie das Webpack (oder einen anderen Bundler Ihrer Wahl) zu verwenden, um alle Ihre Assets in einem Build-Schritt zu bündeln.
Erstens können Sie die CommonJS-Syntax genau wie browserify verwenden. Um Bootstrap-JS-Code in Ihr Projekt aufzunehmen, gehen Sie wie folgt vor:
const bootstrap = require('bootstrap');
Was die css
Dateien betrifft, hat Webpack sogenannte " Loader ". Sie ermöglichen es Ihnen, dies in Ihren js-Code zu schreiben:
require('bootstrap/dist/css/bootstrap.css');
und die CSS-Dateien werden "magisch" in Ihren Build aufgenommen. Sie werden dynamisch als <style />
Tags hinzugefügt, wenn Ihre App ausgeführt wird. Sie können das Webpack jedoch so konfigurieren, dass sie als separate css
Datei exportiert werden. Weitere Informationen hierzu finden Sie in der Dokumentation zum Webpack.
Abschließend.
- Sie sollten Ihren App-Code mit einem Bundler "bündeln"
- Sie sollten weder
node_modules
noch die dynamisch erstellten Dateien an git übergeben. Sie können build
npm ein Skript hinzufügen , das zum Bereitstellen von Dateien auf dem Server verwendet werden soll. Dies kann jedoch auf verschiedene Arten erfolgen, abhängig von Ihrem bevorzugten Erstellungsprozess.