2016-07-11 45 views
6

Mi chiedevo se qualcuno potesse aiutarti, sto tentando di terminare il mio processo di compilazione che attualmente traspone es6> es5 usando babel, Dopo che è stato completato voglio usare uglifyJS in modo ricorsivo Minimizza tutti i miei file .js usando solo gli script NPM (non grunt o gulp per favore).UglifyJS - converti tutti i file .js in una cartella

Quello che desidero;

  • convertire tutti i .js nella cartella per ES5
  • Minify tutti i file .js in una determinata cartella utilizzando uglify
  • Crea fonte mappe
  • Copia fuori in una nuova cartella

mio impostazione corrente;

  • Converte tutte .js per ES5
  • Minify tutti ES5 File js (si creano comunque non sourcemaps, anche i file l'ES5 js vengono sostituiti come non c'è nessun supporto per spostarsi in un'altra cartella)

ho provato: https://www.npmjs.com/package/recursive-uglifyjs e https://www.npmjs.com/package/uglifyjs-folder ma questi entrambi sembrano in grado di eseguire la procedura di compilazione di cui ho bisogno

Ecco il mio script package.json sezione

"babel": "babel js_uncompiled --out-dir js_uncompiled/es5 --source-maps && npm run npm:uglify", 
    "build": "npm run babel", 
    "uglify": "recursive-uglifyjs js_uncompiled/es5" 

È possibile trovare un link al mio pieno package.json qui: http://pastebin.com/4UHZ1SGM

Grazie

risposta

0

Modificato: inclusi informazioni dai commenti

Così, ora uglifyjs-folder ha la possibilità di passare un file di configurazione in modo che tu possa eseguire tutti i comandi di uglify, ma su un'intera cartella (e puoi transpilarti in ES5 usando armonia - as stated in comments).

Nota questo è meglio che farlo manualmente con cat o altri comandi di shell, dal momento che uglifyjs-cartella in grado di generare un file di singola uscita (concatenato) ed è più semplice da usare.

Run uglifyjs-folder "%CD%" --config-file "uglify.config.json" --output "folder" -e in cui il file di configurazione (nella cartella principale del progetto) contiene per esempio (non tutte le opzioni necessarie):

{ "compress": true, "mangle": true, "sourceMap": { "base": "input/path/", "content": "input/sourcemap", "filename": "{file}.min.js", "includeSources": true, "root": "original/source/path", "url": "source/path" } }

Obs .: attualmente c'è una open issue da me stesso, perché source- la mappatura genera errori. Una volta risolto il problema aggiornerò la mia risposta qui.

UPDATE: ok, problema risolto, versione 1.5 rilasciata! Codice sopra aggiornato

+1

Ora 'uglifyjs-folder' può trascrivere in ES5 usando l'armonia. –

+0

Grazie @PranavSingh, aggiornando la mia risposta –

Problemi correlati