2012-05-01 12 views
7

Qui è il mio dilemma:Cercando di rimuovere i commenti da una grande quantità di file JavaScript

Io sono un noob (attualmente internato e contribuendo a mantenere due siti di e-commerce) in javascript. Sono stato recentemente assegnato per rimuovere tutti i commenti che si verificano nelle nostre librerie javascript (che è oltre 25.000 commenti!). Ovviamente voglio trovare una funzione o un programma preesistente in grado di analizzare il codice, rimuovendo tutti i caratteri seguenti // o */...

Ho esaminato alcuni minifiers disponibili online come Yui, jscompressor. com e uglifyJS che renderebbero questo compito più automatico, ma ci sono alcuni problemi. O sono troppo aggressivi (abbreviano i nomi delle variabili, rimuovono tutti gli spazi bianchi, ecc.) O richiedono che si alimentino una riga o un file alla volta. Ho a che fare con letteralmente migliaia di file .js.

Ulteriori dettagli: il nostro ambiente di sviluppo è Eclipse IDE e xammp; le lingue sono html, php, css.

Qualsiasi raccomandazione di un programma che possa soddisfare le mie esigenze sarebbe ottima!

+14

perché mai si desidera rimuovere i commenti, ma non minify? – Mathletics

+2

hm. è possibile scrivere un reg per i finali di riga. PERL potrebbe sicuramente farlo (credo). –

+2

http://jscompress.com/ dovrebbe farlo per te .. Ci sono un sacco di altri minificatori online per js e css. È una buona pratica mantenere il file originale con indentazione e commenti e ridurre il file che sta per essere prodotto. – MilkyWayJoe

risposta

-1

In effetti, non è così facile creare un'espressione regolare che rimuove tutti i commenti da un documento javascript.

La soluzione di base è quella di utilizzare:

 yourJavascriptString.replace(/\/\*.+?\*\/|\/\/.*(?=[\n\r])/g, ''); 

purtroppo non funziona sempre. Se hai bisogno di una soluzione più completa, visita questo sito: http://james.padolsey.com/javascript/removing-comments-in-javascript/

+0

-1 poiché questo non funziona sempre, nemmeno vicino. – djechlin

2

Dai un'occhiata più da vicino a uglifyjs. Di default non comprime né munges (devi dare rispettivamente le opzioni -c e -m) e puoi scegliere in modo dettagliato i tipi di compressione che esegue, anche al livello di specificare un'espressione regolare per quali tipi di compressione commenti da rimuovere. E, se sei così propenso, puoi persino stampare graziosamente sulla via d'uscita. Quindi qual è il problema con l'utilizzo?

0

So che questa domanda ha qualche anno - ma tutti i programmi di rimozione dei commenti Javascript che ho trovato non potevano gestire il file Javascript 2.6mb che stavo cercando di rimuovere.

Ho creato un jsfiddle con il seguente codice, poi incollato il file 2.6MB nella casella di testo e ha funzionato per me:

$("textarea").val($("textarea").val().replace(/\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\//g,"")); /*remove these comment types*/ 

$("textarea").val($("textarea").val().replace(/\/\/.*/g,"")); // remove these comment types 

https://jsfiddle.net/40okonqo/

Speranza che aiuta qualcuno.

credito: ho usato informazioni che si trovano qui per aiutare con l'espressione regolare: http://blog.ostermiller.org/find-comment

Problemi correlati