2015-01-02 14 views
6

Tôi sử dụng nhật thực để phát triển ExtJS, Tôi đang sử dụng kiến ​​xây dựng trong nhật thực, nó sử dụng Sencha cmd. chi tiết dự án của tôi làLỗi xây dựng ExtJS 5.1 (Lỗi phân tích cú pháp Yui)

app.framework.version = 5.1.0.107

app.cmd.version = 5.1.0.26

khi tôi cố gắng để xây dựng dự án, nó không thành công với các lỗi Yui màu Tây Nguyên, nhưng Tôi không thể tìm thấy bất kỳ lỗi nào trong không gian làm việc của mình .. Bạn có thể giải thích thông báo theo dõi ngăn xếp không?

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 

Trả lời

12

Tôi sẽ đi ra ngoài một chi và đề nghị đó là vì bạn đang sử dụng reserved word trong tên thuộc tính của mình. Mặc dù thường là "okay" trong javascript và ứng dụng ExtJS của bạn chạy trong chế độ phát triển, tôi đã tìm thấy khi giảm thiểu các cú sốc YUI trên các từ khóa này.

Các dễ nhất (và có lẽ nên) lựa chọn là chỉ để tránh các từ khóa dành riêng và tên trừu tượng cái gì khác, abstractObj ví dụ. Nếu bạn muốn buộc các vấn đề, bạn có thể thay vì điều này:

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

... thử ký hiệu truy cập mảng:

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

... hoặc trong trường hợp đặc biệt của báo cáo kết quả if trong thông báo lỗi, các in điều hành:

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

Trong những trường hợp (và bất kỳ những người khác bạn có thể có) truy cập vào prope rty với từ khóa như là một chuỗi dường như đáp ứng các trình biên dịch - mặc dù nó phá vỡ ước và không trông rất gọn gàng để cho là không xứng đáng ...

+0

Vâng, tôi đã thay đổi tên thư mục để prAbstract, và thay đổi cập nhật tất cả các dòng trong mã của tôi sử dụng các lớp trừu tượng của tôi, hơn là cố định vấn đề. Cảm ơn bạn – AsyncTask

+0

Tôi đã có gần như chính xác cùng một vấn đề với một tên lớp 'trường hợp' – weeksdev

3

Bạn đã gặp lỗi cú pháp trong JavaScript; khi điều này được kết hợp thành một tập tin duy nhất, máy nén YUI không thể xử lý nó và barfs.

Thật không may, ExtJS không có công cụ tốt để phát hiện lỗi trong các tệp riêng lẻ. Bạn có thể thử một công cụ khác (ví dụ, tôi sử dụng jshint, như một tác vụ Ant trước khi xây dựng), hoặc bạn có thể chỉ cần nhìn vào các tệp đã thay đổi kể từ lần cuối cùng bạn xây dựng thành công và thu hẹp nó theo cách đó.

Các vấn đề liên quan