这可能吗?例如,myOpenGL
是一个包,openGL
是一个应用。
我想做这样的事情:
Ext.define('myOpenGL.view.Qxga',{
extend: 'openGL.view.Uxga',
alias: 'widget.qxga',
itemId: 'qxga',
requires: [
'openGL.view.Uxga',
'myOpenGL.view.QxgaController'
],
controller: 'QxgaController'
});
这是文件的组织方式(为清晰起见,省略了大多数文件):
workspace/
packages/
myOpenGL/
.sencha/
src/
view/
qxga.js <--- the file defining QXGA
package.json
build.xml
openGL/
.sencha/
app/ <--- errors are being generated from here?
app/
view/
uxga.js <--- the file with the class I want to extend
app.json
build.xml
...
现在我得到了未解决的依赖项错误,但它们似乎是从应用程序生成而不是包(请参阅The following error...
之后):
[ERR] Failed to resolve dependency openGL.view.Uxga for file myOpenGL.view.Qxga
[ERR]
[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.ExNotFound: Unknown definition for dependency : openGL.view.Uxga
[ERR]
[ERR] Total time: 6 seconds
[ERR] The following error occurred while executing this line:
C:\Users\«username»\Applications\Sencha\Cmd\5.1.0.26\plugins\ext\current\plugin.xml:403: The following error occurred while executing this line:
C:\Users\«username»\Documents\workspace\openGL\.sencha\app\build-impl.xml:378: The following error occurred while executing this line:
C:\Users\«username»\Documents\workspace\openGL\.sencha\app\init-impl.xml:303: com.sencha.exceptions.ExNotFound: Unknown definition for dependency : openGL.view.Uxga
有些问题:
workspace\openGL\.sencha\app
?它是packages\myOpenGL
我正在努力建立。我希望init-impl.xml
packages
发出错误。openGL/app
,必须按原样使用,但可以修改packages
中的任何内容。此外,我无法移动openGL
,但可以在packages
中创建快捷方式,也可以在openGL/overrides
中创建替换。知道了,我有办法让这个工作吗?答案 0 :(得分:2)
通常,在较高的层次上,构建过程不是:包,然后是包覆盖,然后是应用,然后是应用覆盖。如果您的软件包正在引入应用程序代码,那么它理论上最终会因为依赖性而拉动所有应用程序,从而搞乱构建过程。也许这就是为什么你会看到来自应用程序的错误。
一种解决方案是将您需要的应用程序代码复制到程序包中,更改名称空间,限制依赖项,并以这种方式使用它。
另一个解决方案是让应用提供商重新组织您需要的功能包!也就是说,重复使用可重复使用的内容。
在任何一种情况下,这都是很多工作,但糟糕的设计总会让你感到伤心!