2015-01-02 69 views
6

我使用eclipse進行ExtJS開發, 我在eclipse中使用ant build,它使用了Sencha cmd。 我的項目細節ExtJS 5.1 Build Error(Yui Parse Error)

app.framework.version = 5.1.0.107

app.cmd.version = 5.1.0.26

當我嘗試建立項目時,出現衣解析錯誤,但我在工作區中找不到任何錯誤.. 您能解釋堆棧跟蹤消息嗎?

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 

回答

12

我打算出去一趟,並建議這是因爲您的房產名稱中使用了reserved word。雖然它通常是「好吧」在JavaScript和您的ExtJS應用程序運行在開發模式,我發現時縮小YUI扼流圈上這些關鍵字。

最簡單的(也可能是可取的)選項只是爲了避免保留關鍵字和名稱抽象別的東西,abstractObj例如。如果你想生效的問題,你可以不是這樣的:

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

...嘗試數組訪問符號:

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

...或if聲明的特定情況下,在錯誤信息時,in操作:

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

在這些情況下(和其他任何你可能有)訪問prope與關鍵字作爲字符串 rty似乎滿足編譯器 - 雖然它打破常規,並不看起來很整齊,所以可以說是不值得...

+0

是的,我改變文件夾名稱爲prAbstract,並更改更新我的代碼中的所有行使用我的抽象類,而不是問題修復。謝謝 – AsyncTask

+0

我幾乎有同樣的問題,類名'case' – weeksdev

3

您的JavaScript中有語法錯誤;當它被合併成一個文件時,YUI壓縮器無法處理它和barf。

不幸的是,ExtJS沒有很好的工具來發現單個文件中的錯誤。你可以嘗試一個不同的工具(例如,我使用jshint作爲預生成的Ant任務),或者你可以簡單地查看自上次做了成功構建並將其縮小的文件。