2015-08-01 20 views
9

Introduzione: Gulp guarda i miei file css/js fino alla modalità di sviluppo sul mio computer locale.Quali file di Laravel Elixir sono necessari sul server di produzione?

Quindi in fase di produzione carico tutto il progetto laravel sul server di produzione (live).

Problema: Con tutto quel roba gulp ed elisir installato, il progetto laravel diventa molto pesante.

Domanda: Quali file di node_modules directory faccio esattamente bisogno di caricare con il progetto sul server di produzione per fare elisir funziona bene?

intendo compresi all.css e all.js file da

<link rel="stylesheet" href="{{ elixir('css/all.css') }}">

Forse non c'è bisogno di caricare tutti loro?

risposta

1

Non devi preoccuparti di includere qualsiasi file dalla directory node_modules; puoi pensare a quelli come dipendenze simili alla directory vendor per il tuo progetto php.

È necessario includere i file nella directory public/* per avere viste di lavoro se si utilizzano i percorsi e la configurazione predefiniti per la compilazione delle risorse. Puoi vedere un buon esempio di questo nel Scripts section of the Elixir documentation.

Il metodo script si assume tutti i percorsi sono relativi alla directory delle risorse/attività/js, e metterà il JavaScript conseguente pubblica/js/all.js di default:

elixir(function(mix) { mix.scripts([ 'jquery.js', 'app.js' ]); });

Come nota a margine, personalmente non consiglierei di creare questo tipo di separazione perché il progetto sembra pesante. Se hai una dimensione di progetto molto grande, molto probabilmente non dovrebbe essere dovuta a css e js. Puoi anche considerare di usare un cdn per alleggerire lo spazio di produzione, se necessario.

1

Ho incontrato lo stesso problema. miei gulpfile.js ha

mix.sass('app.scss'); 
mix.browserify('app.js'); 
mix.version(['css/app.css', 'js/app.js']); 

Questo è il mio soluzioni:

  • Opzione 1: Se si dispone di NPM e gulp sul server. Sul computer locale, fare npm shrinkwrap, quindi premere package.json, gulpfile.js, npm-shrinkwrap.json, risorse/risorse/(js | sass). In root del sito Web del server, fare npm install e gulp --production
  • Opzione 2: Non è necessario npm o gulp sul server. Basta fare gulp --production su locale e premere public/build/* sul server. Se non si utilizza la versione di Elixir, premere invece public/(js | css). risorse/risorse (js | css) e tutto il materiale gulp di npm può essere tenuto dal server.

node_modules non è necessario in entrambi i casi.
Ho usato l'opzione 2, molto più semplice e ha funzionato bene per me.