El punto de usar CDN es que es más rápido , en primer lugar, porque es una red distribuida , pero en segundo lugar, porque los navegadores almacenan en caché los archivos estáticos y hay muchas posibilidades de que, por ejemplo, la jquery
biblioteca de CDN sea su sitio los usos ya habían sido descargados por el navegador del usuario y, por lo tanto, el archivo se había almacenado en caché y, por lo tanto, no se realiza ninguna descarga innecesaria. Dicho esto, sigue siendo una buena idea proporcionar un respaldo .
Ahora, el punto del paquete npm de bootstrap
es que proporciona el archivo javascript de bootstrap como módulo . Como se mencionó anteriormente, esto hace posible require
que use browserify , que es el caso de uso más probable y, según tengo entendido, la razón principal por la que bootstrap se publica en npm.
Cómo usarlo
Imagine la siguiente estructura del proyecto:
proyecto
| - node_modules
| - público
El | | - css
El | | - img
El | | - js
El | | - index.html
| - package.json
En el index.html
se puede hacer referencia tanto css
y js
archivos de la siguiente manera:
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
Cuál es la forma más simple y correcta para los .css
archivos. Pero es mucho mejor incluir el bootstrap.js
archivo como este en algún lugar de sus public/js/*.js
archivos:
var bootstrap = require('bootstrap');
E incluye este código solo en aquellos javascript
archivos donde realmente lo necesita bootstrap.js
. Browserify se encarga de incluir este archivo por usted.
Ahora, el inconveniente es que ahora tiene sus archivos front-end como node_modules
dependencias, y la node_modules
carpeta generalmente no se registra con git
. Creo que esta es la parte más controvertida, con muchas opiniones y soluciones .
ACTUALIZACIÓN Marzo 2017
Han pasado casi dos años desde que escribí esta respuesta y hay una actualización en su lugar.
Ahora la forma generalmente aceptada es usar un paquete como webpack (u otro paquete de elección) para agrupar todos sus activos en un paso de compilación.
En primer lugar, le permite usar la sintaxis commonjs al igual que browserify, por lo que para incluir el código bootstrap js en su proyecto, haga lo mismo:
const bootstrap = require('bootstrap');
En cuanto a los css
archivos, webpack ha llamado " cargadores ". Le permiten escribir esto en su código js:
require('bootstrap/dist/css/bootstrap.css');
y los archivos css se incluirán "mágicamente" en su compilación. Se agregarán dinámicamente como <style />
etiquetas cuando se ejecute la aplicación, pero puede configurar el paquete web para exportarlas como un css
archivo separado . Puede leer más sobre eso en la documentación de webpack.
En conclusión.
- Debe "agrupar" el código de su aplicación con un agrupador
- No debe confirmar
node_modules
ni los archivos generados dinámicamente en git. Puede agregar un build
script a npm que se debe usar para implementar archivos en el servidor. De todos modos, esto se puede hacer de diferentes maneras dependiendo de su proceso de compilación preferido.