Question 1:
Quel est exactement le but de l'installation de Twitter Bootstrap via npm? Je pensais que npm était destiné aux modules côté serveur. Est-il plus rapide de servir vous-même les fichiers d'amorçage que d'utiliser un CDN?
Question 2:
Si je devais installer npm Bootstrap, comment pointerais-je vers les fichiers bootstrap.js et bootstrap.css?
Réponses:
L'intérêt d'utiliser CDN est qu'il est plus rapide , tout d'abord, car il s'agit d'un réseau distribué , mais d'autre part, parce que les fichiers statiques sont mis en cache par les navigateurs et les chances sont élevées que, par exemple, la
jquery
bibliothèque du CDN que votre site les utilisations avaient déjà été téléchargées par le navigateur de l'utilisateur, et donc le fichier avait été mis en cache, et donc aucun téléchargement inutile n'a lieu. Cela étant dit, c'est toujours une bonne idée de prévoir une solution de rechange .Maintenant, le point du paquet npm de bootstrap
est qu'il fournit le fichier javascript de bootstrap en tant que module . Comme cela a été mentionné ci-dessus, cela lui permet d'
require
utiliser browserify , qui est le cas d'utilisation le plus probable et, si je comprends bien, la principale raison de la publication de bootstrap sur npm.Comment l'utiliser
Imaginez la structure de projet suivante:
Dans votre,
index.html
vous pouvez référencer à la foiscss
et desjs
fichiers comme celui-ci:Quelle est la manière la plus simple et correcte pour les
.css
fichiers. Mais il est préférable d'inclure lebootstrap.js
fichier comme celui-ci quelque part dans vospublic/js/*.js
fichiers:Et vous incluez ce code uniquement dans les
javascript
fichiers dont vous avez réellement besoinbootstrap.js
. Browserify prend soin d'inclure ce fichier pour vous.Maintenant, l'inconvénient est que vous avez maintenant vos fichiers frontaux en tant que
node_modules
dépendances, et lenode_modules
dossier n'est généralement pas archivé avecgit
. Je pense que c'est la partie la plus controversée, avec de nombreuses opinions et solutions .MISE À JOUR mars 2017
Près de deux ans se sont écoulés depuis que j'ai écrit cette réponse et une mise à jour est en place.
Maintenant, la méthode généralement acceptée consiste à utiliser un bundle comme webpack (ou un autre bundle de votre choix) pour regrouper tous vos actifs dans une étape de construction.
Tout d'abord, il vous permet d'utiliser la syntaxe commonjs tout comme browserify, donc pour inclure du code bootstrap js dans votre projet, vous faites de même:
Quant aux
css
fichiers, webpack a ce qu'on appelle des " chargeurs ". Ils vous permettent d'écrire ceci dans votre code js:et les fichiers css seront "magiquement" inclus dans votre build. Ils seront ajoutés dynamiquement en tant que
<style />
balises lors de l'exécution de votre application, mais vous pouvez configurer le webpack pour les exporter en tant quecss
fichier séparé . Vous pouvez en savoir plus à ce sujet dans la documentation de webpack.En conclusion.
node_modules
ni les fichiers construits dynamiquement dans git. Vous pouvez ajouter unbuild
script à npm qui devrait être utilisé pour déployer des fichiers sur le serveur. Quoi qu'il en soit, cela peut être fait de différentes manières en fonction de votre processus de construction préféré.la source
defer
attribut sur vos scripts ou fichiers de chargement paresseuxSi vous NPM ces modules, vous pouvez les servir en utilisant une redirection statique.
Installez d'abord les packages:
Puis sur le server.js:
Puis, enfin, au .html:
Je ne servirais pas les pages directement à partir du dossier où se trouve votre fichier server.js (qui est généralement le même que node_modules) comme proposé par TimeWonder , de cette façon, les gens peuvent accéder à votre fichier server.js.
Bien sûr, vous pouvez simplement télécharger et copier-coller sur votre dossier, mais avec NPM, vous pouvez simplement mettre à jour en cas de besoin ... plus facile, je pense.
la source
/js
itinéraire peut-il rediriger vers deux répertoires distincts? Comment gérerait-il les fichiers en conflit dans chacun?Réponse 1:
Le téléchargement de bootstrap via npm (ou bower) vous permet de gagner du temps de latence. Au lieu d'obtenir une ressource distante, vous en obtenez une locale, c'est plus rapide, sauf si vous utilisez un cdn (cochez la réponse ci-dessous)
"npm" devait à l'origine obtenir Node Module, mais avec l'essor du langage Javascript (et l'avènement de browserify), il a un peu grandi. En fait, vous pouvez même télécharger AngularJS sur npm, ce n'est pas un framework côté serveur. Browserify vous permet d'utiliser AMD / RequireJS / CommonJS côté client afin que les modules de nœuds puissent être utilisés côté client.
Réponse 2:
Si vous npm installez bootstrap (si vous n'utilisez pas un fichier grunt ou gulp particulier pour déplacer vers un dossier dist), votre bootstrap sera situé dans "./node_modules/bootstrap/bootstrap.min.css" si je ne me trompe pas.
la source
Utilisez npm / bower pour installer bootstrap si vous souhaitez le recompiler / modifier moins de fichiers / tester. Avec grunt, il serait plus facile de le faire, comme indiqué sur http://getbootstrap.com/getting-started/#grunt . Si vous souhaitez uniquement ajouter des bibliothèques précompilées, n'hésitez pas à inclure manuellement les fichiers au projet.
Non, vous devez le faire vous-même ou utiliser un outil de grognement séparé. Par exemple, «grunt-contrib-concat» Comment concaténer et réduire plusieurs fichiers CSS et JavaScript avec Grunt.js (0.3.x)
la source