Sarebbe buona pratica conservare solo il bower.json
file e gitignore l'intera bower_components
directory?
Sarebbe buona pratica conservare solo il bower.json
file e gitignore l'intera bower_components
directory?
Risposte:
La pagina ufficiale di Bower affermava:
NB Se non stai creando un pacchetto destinato ad essere utilizzato da altri (ad esempio, stai creando un'app Web), dovresti sempre controllare i pacchetti installati nel controllo del codice sorgente .
Assicurati di controllare il link nella citazione, discute alcuni pro e contro. Il vantaggio principale è che il check-in garantisce che le dipendenze siano sempre disponibili, purché il repository sia disponibile. Qualunque cosa accada a Bower, GitHub o qualsiasi altra cosa sarebbe necessaria altrimenti.
Il file .gitignore in un progetto Yeoman AngularJS appena generato ha componenti bower_components (e node_modules) elencati per essere ignorati (se non conosci Yeoman è uno strumento di impalcatura web molto affidabile per le webapp moderne, quindi è abbastanza buono per me!):
.gitignore
node_modules
dist
.tmp
.sass-cache
bower_components
C'è un tempo e un posto per entrambi gli approcci. Per Yeoman è opportuno affidarsi a bower.json perché è uno strumento in una catena di strumenti e deve rimanere vivo e respirare con l'ecosistema di Bower. Per un'app Web distribuibile, è generalmente buona norma impegnare dipendenze e mantenere un maggiore controllo.
Ecco un buon articolo che mi piace che ne discute.
Il Yeoman generatore preriempita Le .gitignore file con bower_components, ma anche pre-riempita con altre directory penserei sarebbero necessari per un'applicazione finale (come www) così ho fatto qualche ricerca.
Ho scoperto che www / index.html è una versione ridotta dell'app / index.html. La directory dell'app e i suoi contenuti (compresi bower_components) contengono i file di origine necessari per la directory di output (www). Impegni le directory dei sorgenti nel controllo del codice sorgente (es. Git) ma non nei file generati (es. Www). I gestori di pacchetti come bower e npm sono pensati per essere utilizzati durante la fase di generazione / generazione e i loro artefatti non devono essere controllati nel controllo del codice sorgente.
In definitiva, la fonte che si controlla in git è la configurazione minima necessaria per costruire il resto del progetto per scopi di sviluppo o distribuzione.
È bene ignorare /bower_components
dir e solo il check-in bower.json
e il bower-locker.bower.json
file se si crea il file di blocco utilizzando il blocco del bower scritto da Shawn Lonas .
Prima della creazione di bower-locker, c'era uno svantaggio causato da un problema di bower che non aveva la capacità di restringimento ma che può essere mitigato dalla libreria sopra.
Esegui i seguenti comandi per ottenerlo:
npm install bower-locker -g
o
yarn global add bower-locker
quindi generare il file di blocco basato sul bower.json
file esistente eseguendo:
bower-locker lock
Il bower.json
file originale verrà rinominatobower-locker.bower.json
.gitignore
file"