O objetivo do uso da CDN é que ela é mais rápida , antes de tudo, porque é uma rede distribuída , mas, em segundo lugar, porque os arquivos estáticos estão sendo armazenados em cache pelos navegadores e as chances são altas de que, por exemplo, a jquery
biblioteca da CDN que seu site os usos já foram baixados pelo navegador do usuário e, portanto, o arquivo foi armazenado em cache e, portanto, nenhum download desnecessário está ocorrendo. Dito isto, ainda é uma boa idéia fornecer um retorno .
Agora, o ponto do pacote npm do bootstrap
é que ele fornece o arquivo javascript do bootstrap como um módulo . Como mencionado acima, isso possibilita require
o uso do browserify , que é o caso de uso mais provável e, pelo que entendi, o principal motivo para a publicação do bootstrap no npm.
Como usá-lo
Imagine a seguinte estrutura do projeto:
projeto
| - node_modules
| - público
| | - css
| | - img
| | - js
| | - index.html
| - package.json
No seu, index.html
você pode fazer referência a arquivos css
e js
assim:
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
Qual é a maneira mais simples e correta para os .css
arquivos. Mas é muito melhor incluir esse bootstrap.js
arquivo em algum lugar dos seus public/js/*.js
arquivos:
var bootstrap = require('bootstrap');
E você inclui esse código apenas nos javascript
arquivos em que você realmente precisa bootstrap.js
. O Browserify cuida de incluir este arquivo para você.
Agora, a desvantagem é que agora você tem seus arquivos front-end como node_modules
dependências e a node_modules
pasta geralmente não é registrada git
. Eu acho que essa é a parte mais controversa, com muitas opiniões e soluções .
ATUALIZAÇÃO março 2017
Quase dois anos se passaram desde que escrevi esta resposta e uma atualização está em vigor.
Agora, a forma geralmente aceite é usar uma bundler como Webpack (ou outro bundler de escolha) para agrupar todos os seus ativos em uma etapa de compilação.
Em primeiro lugar, ele permite que você use a sintaxe commonjs da mesma maneira que o browserify, portanto, para incluir o código bootstrap js em seu projeto, faça o mesmo:
const bootstrap = require('bootstrap');
Quanto aos css
arquivos, o webpack denominou " loaders ". Eles permitem que você escreva isso no seu código js:
require('bootstrap/dist/css/bootstrap.css');
e os arquivos css serão "magicamente" incluídos na sua compilação. Eles serão adicionados dinamicamente como <style />
tags quando o aplicativo for executado, mas você pode configurar o webpack para exportá-los como um css
arquivo separado . Você pode ler mais sobre isso na documentação do webpack.
Em conclusão.
- Você deve "agrupar" o código do seu aplicativo com um bundler
- Você não deve confirmar
node_modules
nem os arquivos criados dinamicamente no git. Você pode adicionar um build
script ao npm que deve ser usado para implantar arquivos no servidor. De qualquer forma, isso pode ser feito de maneiras diferentes, dependendo do seu processo de compilação preferido.