2015-01-02 2 views
6

ExtJS 개발을 위해 이클립스를 사용합니다. 이클립스에서 개미 빌드를 사용하고 있으며, Sencha cmd를 사용합니다. 내 프로젝트 세부 사항은ExtJS 5.1 빌드 오류 (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을 사용하고 있기 때문에 제안 할 것입니다. 일반적으로 "okay"은 javascript이고 ExtJS 응용 프로그램은 개발 모드에서 실행되지만, YUI 개의 키워드를 축소 할 때 발견되었습니다.

가장 쉬운 (아마도 것이 좋습니다) 옵션은 예약 된 키워드와 이름이 다른 추상적 인 일, 예를 들어 abstractObj을 방지하는 것입니다. 당신이 문제를 강제하고자하는 경우, 당신은 대신의 수 :

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

... 또는 if 문장의 특별한 경우에서의 :

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

... 배열 액세스 표기법을 시도 오류 메시지의 in 운영자 :이 경우 에서

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

(및 다른 사람이있을 수 있습니다) prope 접근 ryty 문자열로 문자열 - 컴파일러를 만족시키는 것 같아요.하지만 규칙이 깨져서 틀림없이 가치가없는 것처럼 보이지는 않습니다.

+0

예, 폴더 이름을 prAbstract로 변경하고 업데이트를 변경했습니다. 내 코드에서 내 추상 클래스를 사용하는 모든 줄이 문제가 해결 된 것보다. 감사합니다. – AsyncTask

+0

거의 같은 문제가 'case'라는 클래스 이름으로 나타났습니다. – weeksdev

3

자바 스크립트에 구문 오류가 있습니다. 이 파일을 하나의 파일로 결합하면 YUI 압축기가 파일과 barfs를 처리 할 수 ​​없습니다.

불행히도 ExtJS에는 개별 파일의 오류를 찾아내는 데 유용한 도구가 없습니다. 다른 도구를 사용해 볼 수도 있습니다 (예를 들어 jshint를 Ant 태스크 사전 빌드로 사용). 또는 마지막으로 성공적인 빌드를 수행 한 후 변경된 파일을 간단하게 볼 수 있습니다.