Serait-ce une bonne pratique de ne garder que le bower.json
file et gitignore l'ensemble bower_components
répertoire?
Le page officielle de Bower a déclaré:
NB Si vous ne créez pas un package destiné à être consommé par d'autres (par exemple, vous construisez une application Web), vous devez toujours vérifier les packages installés dans le contrôle de source .
Assurez-vous de vérifier le lien dans la citation, il discute de certains avantages et inconvénients. Le principal avantage mentionné est que leur archivage garantit que vos dépendances sont toujours disponibles, tant que votre référentiel est disponible. Peu importe ce qui arrive à Bower, GitHub ou quoi que ce soit d'autre serait nécessaire autrement.
Le fichier . Gitignore d'un projet Yeoman AngularJS nouvellement généré contient des bower_components (et node_modules) répertoriés pour être ignorés (si Je ne connais pas Yeoman, c’est un outil d’échafaudage Web très réputé pour les applications Web modernes, c’est donc suffisant pour moi!):
. gitignore
node_modules
dist
.tmp
.sass-cache
bower_components
Il y a un temps et une place pour les deux approches. Pour Yeoman, il convient de faire confiance à bower.json car c’est un outil d’une chaîne d’outils qui a besoin de rester en vie et de respirer avec l’écosystème de bower. Pour une application Web déployable, il est généralement recommandé de valider des dépendances et de conserver un contrôle accru.
Voici un bon article J'aime discuter de cela.
Si vous utilisez Grunt et Node avec Bower, il est logique de mettre bower_components dans votre .gitignore, car lorsque vous exécutez grunt serve ou build grunt il s’occupe des dépendances pour vous, je suis sûr que c’est pourquoi, dans Yeoman, ils ajoutent au .gitignore
Le générateur Yeoman pré-remplissait le fichier . Gitignore avec bower_components, mais il pré-remplissait également d'autres répertoires. serait nécessaire pour une application finale (comme www) alors j'ai fait des recherches.
J'ai découvert que www/index.html est une version simplifiée de app/index.html. Le répertoire app et son contenu (y compris bower_components) contiennent les fichiers source nécessaires au répertoire de sortie (www). Vous validez les répertoires sources dans le contrôle de source (c.-à-d. Git), mais pas dans les fichiers générés (c.-à-d. Www). Les gestionnaires de packages tels que bower et npm doivent être utilisés pendant la phase de construction/génération et leurs artefacts ne doivent pas être archivés dans le contrôle de source.
En fin de compte, la source que vous archivez dans git correspond à la configuration minimale nécessaire pour construire le reste du projet à des fins de développement ou de déploiement.
Il est bon d’ignorer le répertoire /bower_components
Et d’archiver uniquement les fichiers bower.json
Et bower-locker.bower.json
Si vous créez un fichier de verrouillage à l’aide de bower-locker écrit par - Shawn Lonas .
Avant que bower-locker ne soit créé, il existait un désavantage causé par un problème de bower ne pas avoir la capacité de shrinkwrap mais il peut être atténué par la bibliothèque ci-dessus.
Exécutez les commandes suivantes pour y parvenir:
npm install bower-locker -g
ou
yarn global add bower-locker
puis générez le fichier de verrouillage basé sur le fichier bower.json
existant en exécutant:
bower-locker lock
Le fichier original bower.json
Sera renommé en bower-locker.bower.json