web-dev-qa-db-fra.com

Est-ce que bower_components devrait être gitignored?

Serait-ce une bonne pratique de ne garder que le bower.json file et gitignore l'ensemble bower_components répertoire?

157
Pierre de LESPINAY

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.

148
TimWolla

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
52
user12121234

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.

9
JoshuaDavid

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

6
Yves

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.

5
Erich Cervantez

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

0
Joel Handwell