2015-06-27 42 views
5

Ho installato alcuni pacchetti usando Bower, ma non so come distribuirli.Come distribuire i pacchetti installati da Bower?

Per esempio, la mia prima idea era quella di creare un'attività Gulp che li concatena - ho fatto con i miei pacchetti angolari:

gulp.task('libs', function() { 
    'use strict'; 
    return gulp 
     .src([ 
      './public/assets/libs/angular/angular.min.js', 
      './public/assets/libs/angular-animate/angular-animate.min.js', 
      './public/assets/libs/angular-routes/angular-route.min.js' 
     ]) 
     .pipe(concat('libs.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('public/dist')); 
}); 

Tuttavia, mentre questi pacchetti di cui sopra sono abbastanza semplici, alcuni altri (Bootstrap e jQuery, per la precisione) vengono con le fonti di cui non ho bisogno. Dovrei semplicemente copiare bootstrap.min.css e jquery.min.js nella mia cartella dist?

Francamente, potrei semplicemente includere tutti questi file da un CDN, non ho ancora capito perché avrei usato Bower (ho seguito un tutorial che usa Bower).

Grazie per il vostro aiuto!

risposta

2

In primo luogo, ecco il motivo dell'utilizzo di Bower, a mio parere.

In "i vecchi tempi", la modalità per includere una particolare libreria JavaScript (diciamo jQuery) nella propria applicazione sarebbe quella di accedere al sito Web jQuery, fare clic sul collegamento per il download e spostare il file .zip scaricato nel progetto directory e decomprimerlo. Quindi aggiungere un tag script che include la libreria.

Il modo "moderno" di includere una libreria JavaScript (ancora utilizzando jQuery come esempio) è quello di eseguire semplicemente bower install jquery --save, che a) aggiungi jQuery al file bower.json che elenca le dipendenze di tutti i vostri applicativi e b) afferrare il jQuery file e metterli nella posizione appropriata. E se stai usando qualcosa chiamato iniezione, che potresti avere o non hai già incontrato, non devi neanche preoccuparti dei tag script poiché questo è gestito dal tuo sistema di compilazione.

(A proposito, suppongo che Bower sia stato ispirato dagli strumenti di gestione dei pacchetti di altri linguaggi come RubyGems per Ruby, che capisco esistessero anni prima di qualcosa di simile nel mondo JavaScript. Potrebbe essere interessante per te prendere un guarda anche a strumenti come questo.)

In secondo luogo, risponderò alla tua domanda sulla distribuzione.

Dipende da dove si sta distribuendo. Uso personalmente Heroku per tutti i miei ambienti di produzione. Non controllo le librerie dei miei fornitori JavaScript in Git perché non è una buona idea mantenere gli artefatti di build nel controllo di versione. Invece, ho appena controllato il mio bower.json, che Heroku è in grado di rilevare. Heroku esegue uno bower install in produzione che recupera tutti i file di libreria appropriati. È così che funziona la mia distribuzione, anche se non è l'unico modo per farlo.

Se desideri sapere come eseguire il deployment su una piattaforma specifica, può essere una buona idea modificare questa domanda o crearne una separata che includa maggiori dettagli sull'ambiente di distribuzione.

+0

Penso che tu abbia risposto alla mia domanda: in sostanza, l'intera struttura di bower_components sarà presente anche sul server. A proposito, usavo RubyGems e attualmente utilizzo NPM, ma mentre non caricavo 'node_modules' e eseguivo' npm install' sul server sembrava semplice, lo stesso non con Bower. – zcserei

+0

Se capisco tutto bene, dovrei semplicemente puntare alla mia directory 'bower_components' quando includo determinati file nelle mie viste? – zcserei

Problemi correlati