如何使用Sencha cmd为Ext JS 4项目生成的“覆盖”文件夹

时间:2013-04-15 19:50:23

标签: extjs extjs4

我使用Sencha cmd生成了一个项目。这会创建一个名为'覆盖'的好文件夹。我把我重写的Ext.Ajax类放在哪里。然后我将它包含在我的app.js文件中,如此

requires: [
    'overrides.Ajax'
]

这在使用我的应用程序时效果很好,但是当我尝试使用Sencha cmd构建它时,我收到以下错误:

[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.BasicException: The following error occurred while e
xecuting this line:
[ERR] Z:\public_html\LoginScreen\.sencha\app\build-impl.xml:469: com.sencha.exce
ptions.ExBuild: com.sencha.exceptions.ExBuild: Failed to find any files for Z:\p
ublic_html\LoginScreen\app\app.js::ClassRequire::overrides.Ajax

有谁知道如何正确包含覆盖文件夹中的文件?

4 个答案:

答案 0 :(得分:4)

结果我需要编辑.sencha / app / sencha.cfg文件,将以下内容添加到app.classpath的末尾

,${app.dir}/overrides

感谢Mitchell在官方Sencha论坛上帮助我! http://www.sencha.com/forum/showthread.php?261361-Properly-using-the-overrides-folder-generated-by-Sencha-Cmd-for-Ext-Js-4.2

答案 1 :(得分:3)

对于Ext 5用户,您可以在app.json中指定“覆盖文件夹”。示例:

"overrides": "${app.dir}/overrides",

答案 2 :(得分:1)

您可能需要在加载程序配置中定义路径以进行覆盖。

这样的事情:

Ext.Loader.setConfig({
    paths: {
        'Ext.ux': 'js/extjs/ux',
        'overrides' : 'somepath/to/overrides',
        'Skirtle.CTemplate':'js/extjs/ux/SkirtleCTemplate.js' //<-- specific component
    }
});

答案 3 :(得分:1)

对我来说只是

requires: [
    'overrides.Ajax'
]

无效我必须添加

requires: [
    'MyApp.overrides.Ajax'
]

它有效:)

还有vars

// @require @packageOverrides
// @require @appOverrides

不要为我做任何事情,所以步骤是

  1. ,${app.dir}/overrides
  2. 中添加sencha.cfg
  3. app.js
  4. 内的Ext.application中添加要求

    Sencha Cmd v4.0.2.67

    中测试过