You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Sencha CMD构建时Ext.window.Window依赖定义未知问题求助

解决ExtJS构建时“Unknown definition for dependency : Ext.window.Window”的错误

这个错误的核心原因是Ext.window.Window是ExtJS Classic Toolkit专属的组件,而你的应用可能默认使用了Modern Toolkit,或者没有正确引入Classic Toolkit的依赖,导致构建工具找不到这个组件的定义。

具体分析

ExtJS 6采用了双Toolkit架构:

  • Classic Toolkit:包含传统桌面端的全量组件(比如Ext.window.Window、Ext.grid.Panel等),适合构建传统桌面应用
  • Modern Toolkit:针对移动端和现代浏览器优化的轻量级组件集,没有Ext.window.Window这类组件(替代方案是Ext.Panel或Ext.Msg等)

你使用sencha generate view -base Ext.window.Window login.Login生成视图时,指定了Classic的组件作为基类,但如果你的应用没有配置为使用Classic Toolkit,构建时自然会找不到这个依赖。

解决方案

根据你的需求,有两种处理方式:

方式1:切换应用为Classic Toolkit

如果你的应用只需要Classic组件,直接修改项目配置:

  1. 打开项目根目录下的app.json文件
  2. 找到"toolkit"配置项,将其值从"modern"改为"classic":
    "toolkit": "classic",
    
  3. 保存文件后,重新运行构建命令:
    sencha app build
    

方式2:配置为Universal应用(同时支持两个Toolkit)

如果需要同时使用Modern和Classic组件,需要在app.json中引入Classic的依赖:

  1. 打开app.json,找到"requires"数组,添加"ext-classic":
    "requires": [
        "ext-classic",
        // 其他已有的依赖项
    ]
    
  2. 保存后重新执行sencha app build即可。

额外提示

如果你的应用原本就是Modern架构,且不需要切换到Classic,那应该更换视图的基类为Modern支持的组件,比如Ext.Panel,重新生成视图:

sencha generate view -base Ext.Panel login.Login

内容的提问来源于stack exchange,提问作者stefano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:18:48