2015-01-02 20 views
6

Uso eclipse per lo sviluppo di ExtJS, Sto usando la generazione di formiche in eclissi, utilizza il cmd di Sencha. miei dettagli del progetto sonoErrore di compilazione di ExtJS 5.1 (errore di analisi Yui)

app.framework.version = 5.1.0.107

app.cmd.version = 5.1.0.26

quando provo a costruire progetti, non riesce con Yui errori di analisi, ma non riuscivo a trovare alcun errore nel mio lavoro .. si può spiegare il messaggio di stack trace?

page: 
-before-page: 
-init: 
-init-compiler: 
-copy-app-resources: 
[x-compile] Copying page resources to D:\Users\admin\workspaceKepler\Propca\WebContent\build\production\Propca 
[x-compile] C2009: YUI Parse Error (missing name after . operator => if (!Propca.view.abstract) Propca.view.abstract = {};) -- unknown-file:143:26 
[x-compile] C2009: YUI Parse Error (missing name after . operator =>  Propca.view.abstract,) -- unknown-file:197633:25 
[x-compile] C2009: YUI Parse Error (syntax error => ], 0));) -- unknown-file:197635:1 
[x-compile] C2009: YUI Parse Error (missing name after . operator =>  Propca.view.abstract,) -- unknown-file:197657:25 
[x-compile] C2009: YUI Parse Error (syntax error => ], 0));) -- unknown-file:197659:1 
[x-compile] C2009: YUI Parse Error (missing name after . operator => (Ext.cmd.derive('Propca.view.querybuilder.QueryBuilder', Propca.view.abstract.PRPanel, {) -- unknown-file:197661:78 
[x-compile] C2009: YUI Parse Error (syntax error =>   items: [) -- unknown-file:197679:15 
[x-compile] C2009: YUI Parse Error (missing ; before statement =>     itemId: 'idbtnValidateSqlScript',) -- unknown-file:197682:24 
[x-compile] C2009: YUI Parse Error (syntax error =>     bodypadding: '30',) -- unknown-file:197683:29 
[x-compile] C2009: YUI Parse Error (syntax error =>     height: 30,) -- unknown-file:197684:24 
[x-compile] InvocationTargetException: java.lang.reflect.InvocationTargetException 

BUILD FAILED 
com.sencha.exceptions.ExBuild: Failed to compress input 
    at com.sencha.tools.compressors.yui.YuiJavascriptCompressor.runYuiCompressor(YuiJavascriptCompressor.java:85) 
    at com.sencha.tools.compressors.yui.YuiJavascriptCompressor.compress(YuiJavascriptCompressor.java:96) 
    at com.sencha.tools.compressors.yui.YuiJavascriptCompressor.compress(YuiJavascriptCompressor.java:106) 
    at com.sencha.tools.page.PageModelBuilder.compressAsset(PageModelBuilder.java:413) 
    at com.sencha.tools.page.PageModelBuilder.copyResourcesToOutputDirectory(PageModelBuilder.java:398) 
    at com.sencha.command.compile.app.AppResourcesCommand.execute(AppResourcesCommand.java:61) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.sencha.util.MethodInvoker$Arguments.invoke(MethodInvoker.java:175) 
    at com.sencha.cli.Command.dispatch(Command.java:43) 
    at com.sencha.cli.Commands.dispatch(Commands.java:64) 
    at com.sencha.command.compile.CompileCommands.dispatch(CompileCommands.java:308) 
    at com.sencha.cli.AbstractCommand.dispatch(AbstractCommand.java:124) 
    at com.sencha.ant.CompileTask$CompileToken.dispatchCommand(CompileTask.java:164) 
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) 
    at org.eclipse.ant.internal.launching.remote.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30) 
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
    at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:424) 
    at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:138) 
Caused by: com.sencha.exceptions.ExReflect: java.lang.reflect.InvocationTargetException 
    at com.sencha.util.ReflectionUtil.newInstance(ReflectionUtil.java:116) 
    at com.sencha.tools.compressors.yui.YuiJavascriptCompressor.runYuiCompressor(YuiJavascriptCompressor.java:58) 
    ... 48 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.sencha.util.ReflectionUtil.newInstance(ReflectionUtil.java:114) 
    ... 49 more 
Caused by: org.mozilla.javascript.EvaluatorException: Compilation produced 379 syntax errors. 
    at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:109) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.sencha.tools.compressors.yui.BaseYuiCompressor$1.invoke(BaseYuiCompressor.java:135) 
    at com.sun.proxy.$Proxy9.runtimeError(Unknown Source) 
    at org.mozilla.javascript.Parser.parse(Parser.java:392) 
    at org.mozilla.javascript.Parser.parse(Parser.java:337) 
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312) 
    at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:533) 
    ... 54 more 

Total time: 1 minute 15 seconds 

risposta

12

Ho intenzione di uscire su un arto e suggerire è perché si sta utilizzando un reserved word nel nome della vostra proprietà. Mentre è tipicamente "okay" in javascript e l'applicazione ExtJS viene eseguita in modalità di sviluppo, ho trovato quando si minimizzano le induttanze YUI su queste parole chiave.

Il metodo più semplice (e probabilmente consigliabile) opzione è solo per evitare le parole chiave e il nome astratto qualcos'altro, abstractObj per esempio riservati. Se si desidera forzare la situazione, si potrebbe invece di questo:

if(!Propca.view.abstract) // ... 

... prova di accesso agli array notazione:

if(!Propca.view['abstract']) // ... 

... o nel caso particolare della dichiarazione if nel messaggio di errore, l'operatore di in:

if(!('abstract' in Propca.view)) // ... 

In questi casi (e tutti gli altri si può avere) accesso alla prope rty con la parola chiave come una stringa sembra soddisfare il compilatore - anche se rompe la convenzione e non sembra molto pulito quindi non ne vale la pena ...

+0

Sì, ho cambiato il nome della cartella in prAbstract, e cambio aggiornamento tutte le righe nel mio codice che utilizzano le mie classi astratte, che problema risolto. Grazie – AsyncTask

+0

ho avuto quasi lo stesso problema esatto con un nome di classe di 'case' – weeksdev

3

Hai un errore di sintassi nel tuo JavaScript; quando questo viene combinato in un unico file, il compressore YUI non è in grado di gestirlo e barfs.

Purtroppo, ExtJS non ha buoni strumenti per individuare errori di singoli file. Si potrebbe provare un altro strumento (io uso jshint, per esempio, come-costruire pre task Ant), o si può semplicemente guardare i file che sono stati modificati dopo l'ultimo fatto un accumulo di successo e restringere il campo in quel modo.