2012-11-06 5 views
19

È necessario impostare l'opzione language_in nel compilatore Closure per impedire l'errore di analisi IE8:Come posso impostare l'opzione language_in per il compilatore Closure?

ERRORE - Errore di analisi. IE8 (e sotto) analizzerà erroneamente le virgole finali nei valori letterali degli array e degli oggetti. Se scegli come target le versioni più recenti di JS, imposta l'opzione language_in appropriata.

Ho trovato un post nel gruppo di chiusura relativo a questo, tuttavia, l'opzione è impostata direttamente sul compilatore java, piuttosto che tramite uno degli script di compilazione. Devo essere in grado di impostarlo su uno script di build.

Sto guardando gli script in chiusura/bin/build/e ce ne sono diversi lì. Ho provato ad aggiungere l'opzione per il builder di chiusura, ma non è andata a buon fine.

Qualcuno può dirmi come impostare correttamente questa opzione?

Grazie.

+0

Nel caso in cui si desidera aggiungere l'opzione quando si compila attraverso wro4j (Maven) vedi: https: // StackOverflow .com/questions/13872186/ecmascript-5-with-wro4j-and-google-closure-compiler/48442401 # 48442401 – Nux

risposta

27

Eseguire il Closure Compiler Application con il flag --help per visualizzare una descrizione di ciascun flag.

java -jar compiler.jar --help 

CommandLineRunner definisce l'insieme dei valori consentiti per --language_in:

--language_in
Sets what language spec that input sources conform.
Options: ECMASCRIPT3, ECMASCRIPT5, ECMASCRIPT5_STRICT, ECMASCRIPT6_TYPED (experimental), ECMASCRIPT_2015, ECMASCRIPT_2016, ECMASCRIPT_2017, ECMASCRIPT_NEXT

Il LanguageMode enum ha un po 'più in dettaglio su questi valori.

Utilizzando Closure Builder, la bandiera --language_in sarebbe passata come argomento per
--compiler_flags come in:

--compiler_flags="--language_in=ECMASCRIPT5" 
+0

Grazie !! Questo ha funzionato perfettamente. – Elisabeth