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 jquerybiblioteca 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 requireo 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.htmlvocê pode fazer referência a arquivos csse jsassim:
<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 .cssarquivos. Mas é muito melhor incluir esse bootstrap.jsarquivo em algum lugar dos seus public/js/*.jsarquivos:
var bootstrap = require('bootstrap');
E você inclui esse código apenas nos javascriptarquivos 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_modulesdependências e a node_modulespasta 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 cssarquivos, 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 cssarquivo 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_modulesnem os arquivos criados dinamicamente no git. Você pode adicionar um buildscript 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.