2015-05-14 13 views
10

Desidero utilizzare Laravel Elixir per ridurre i file css/file. Ma non voglio usare il mix-methode e unirli. Tutto quello che voglio è generare un file "custom.min.js" dal mio originale "custom.js". C'è un modo per farlo con Elexir?Laravel Elixir: come ridurre i file?

MODIFICA: Per renderlo un po 'più chiaro: il mio problema più grande è che ho due cartelle in "risorse/risorse": js e css. Quindi fondamentalmente voglio minimizzare tutti i file presenti e li ho ridotti in "public/js" e "public/css".

risposta

21

Citazione dal Laravel documentation:

Nota: Tutte le attività assumeranno un ambiente di sviluppo, e si escludono minification. Per la produzione, utilizzare gulp --production.

Questo significa che se si desidera che i file sono ridotte di corsa gulp --production invece di gulp. È una pratica migliore che abilitare la compressione direttamente nel file gulp e assicurarsi di poter eseguire il debug dei file compilati durante lo sviluppo dell'applicazione.

Se si desidera loro di essere messi in public/assets/css utilizzare il percorso come secondo parametro:

mix.less('app.less', 'public/assets/css'); 
+9

preferisco avere sorso eseguire entrambi allo stesso tempo, in modo da ottenere i due file dev e di produzione. Poi nella mia app, basata sull'ambiente, semplicemente carico quella appropriata. Questo è molto meglio che dover ricordare di eseguire il minification ogni volta. – Oddman

1

Se si desidera solo per copiare i file .css, senza l'utilizzo di meno o SASS, e non si vuole combinare i file (per esempio, si desidera qualcosa di simile a un metodo copy() con capacità minification) è possibile utilizzare il metodo per combinare, styles(), da chiamandolo per ogni file .css e passando string filename senza matrice, ad esempio:

mix.styles('some.css'); 
mix.styles('node_modules/bootstrap/dist/css/bootstrap.css', null, './'); 

stesso può essere fatto per .js file utilizzando scripts() metodo:

mix.scripts('some.js'); 
mix.scripts('node_modules/bootstrap/dist/js/bootstrap.js', null, './'); 

E quindi è possibile utilizzare gulp (non minimizzare, creare file .map) o gulp --production (crea file minificati) come indicato nei post precedenti.

0

Direttamente dalle docs laravel/Elixir:

Elixir is built on top of Gulp, so to run your Elixir tasks you only need to run the gulp command in your terminal. Adding the --production flag to the command will instruct Elixir to minify your CSS and JavaScript files: 

Run all tasks... gulp 

Run all tasks and minify all CSS and JavaScript... gulp --production 

docs: https://laravel.com/docs/5.3/elixir#running-elixir