Ext JS 7.8环境搭建指南:从授权安装到Grid/Chart/Form实战

发布时间:2026/10/24 11:40:16
Ext JS 7.8环境搭建指南:从授权安装到Grid/Chart/Form实战

简介:面向具备一定JavaScript基础的开发者,这份Sencha Ext JS 7.8+入门指南主要聚焦企业级前端应用开发,适合希望快速上手复杂框架的个人与团队。文档从框架特性与优势讲起,系统说明了许可证获取、命令行工具安装、npm环境管理、IDE选择以及项目结构配置等关键环节,并通过数据网格、柱状图、表单捕获等可运行示例,帮助读者逐步掌握MVC架构下视图与组件的构建方法;每个阶段都配有操作要点与注意事项,能够有效降低学习过程中的踩坑概率。资源为单个PDF文件,大小仅2.65MB,内容紧凑,可作为日常查阅的随身手册。目前已有193人学习下载。读者能从中获得从零到一的完整路径:环境搭建、项目生成、核心组件实战;文档采用目录式结构便于快速定位,代码片段与额外学习资源推荐可支撑后续深入实践,适合用于企业级应用开发学习与团队内部技能提升。

1. Ext JS 7.8 环境搭建:先把 Classic 和 Modern 分清楚再装机

做企业级前端的人,迟早会遇到一个尴尬:项目里又要复杂表格、又要统计图表、又要一堆表单联动,散装组件拼起来总差一口气。我第一次动心评估 Ext JS,就是因为一个后台管理系统的表格需求比需求文档还长。Sencha Ext JS 7.8+ 确实是冲着这个场景来的,140 多个开箱即用的组件,从 Grid 到 Chart 到 Form,数据可视化、MVC 架构都给你预制好了。但别高兴太早,这套环境装起来有几个坎:授权方式绕、Sencha Command 装完可能不在 PATH、生成项目时 Toolkit 选错,后面整体翻车。本文是一份落地笔记,从下载授权、安装命令行工具、创建工程,到做出网格、柱状图、表单三个视图,照着做就能把环境跑通,适合已有 JavaScript 基础、打算构建复杂企业级应用的开发者。

2. 获取与安装:从试用授权到 Sencha Command 落地

2.1 授权选择:Trial 和 Commercial 的安装差异

Sencha Ext JS 的安装和普通开源框架不一样,它不是 npm install 一把梭,而是先要有一份有效授权,再通过 Sencha Command 这个中枢工具完成下载、生成、构建。目录里专门把授权流程分成了 Trial 和 Commercial 两类,这点值得先讲清楚,因为后面所有命令能不能跑起来都取决于此。

Trial 版走的是官网的产品评估页面,填完联系信息之后,你会拿到一个下载入口,里面通常直接给到 Sencha Command 的安装包和对应的 Ext JS 7.8.0 版本。Trial 授权适合先跑通编译链路、熟悉模板项目,但我不建议拿它做长线开发,因为构建 production 环境时会有授权相关的限制,而且评估期一过,环境里会残留一些需要清理的配置。

Commercial 版的关键差别在于多了一步 Software Activation,也就是在安装之前先激活软件。激活之后能拿到完整的 SDK 内容和受支持的组件包,包括官方文档里提到的 Sencha Architect(可视化低代码编辑器)、Sencha Themer(主题设计工具)、Rapid Ext JS(VS Code 插件)以及 ReExt(接 React 项目的桥接组件)。Trial 版虽然也能看到这些工具的介绍,但商业授权下才会解锁完整能力。

提示:如果只是学习安装流程和组件用法,先用 Trial 授权完全够用;公司采购流程走完之后,再按 Commercial 流程重装环境,别在 Trial 上硬做生产项目。

2.2 安装 Sencha Command:三步走和一个多余组件

Sencha Command 是整个环境的中枢。下载下来是一个安装包,Windows 下解压后直接运行安装器即可。安装过程本身不长,真正容易翻车的是组件选择和系统拦截。

# 解压安装包后,在解压目录执行安装器 # 安装包名以官网下载页实际文件名为准,通常是 SenchaCmd-[版本]-windows-amd64.exe .\SenchaCmd-[版本]-windows-amd64.exe

执行安装器后会进入安装路径的选择,默认路径通常没问题,但我更建议装到一个不带空格的纯英文目录下,比如D:\DevTools\SenchaCmd。原因很朴素:后面sencha命令生成的临时脚本和缓存路径会和安装路径强相关,中文目录或带空格的路径在极少数情况下会让批处理脚本解析出错。

安装过程中有一个组件选择界面,里面会出现 Compass 扩展。这是 Ext JS 老版本用来编译 SCSS 样式文件的工具链,7.8.0 已经完全用不上。我的做法是直接取消勾选,少装一个不用的东西,以后排查环境问题就少一个干扰项。

Windows 用户在这里大概率会被 Microsoft Defender 拦一次,弹出的警告窗口选择 Run Anyway 继续即可。这不是什么玄学问题,就是安装器需要写系统目录和 PATH 环境变量,Defender 对这种行为比较敏感。

2.3 验证 PATH:装完第一件事是重开终端

安装完成后,打开一个新的 PowerShell 窗口,执行下面这条命令确认命令行工具已经生效:

sencha which

如果返回一段带版本号和安装路径的信息,说明装好了。如果提示“sencha 不是内部或外部命令”,那就说明 PATH 没有生效。常见原因是安装成功后没有重开终端,或者安装器只写了当前用户的 PATH 而你在管理员窗口里检查的是系统级 PATH。

我一般会手工补一条 PATH。假设 Sencha Command 装在了D:\DevTools\SenchaCmd\7.8.0\bin,那么:

# 追加 Sencha Command 的 bin 目录到当前用户 PATH setx PATH "%PATH%;D:\DevTools\SenchaCmd\7.8.0\bin"

注意 setx 是写注册表里的用户环境变量,改完以后当前窗口依然读不到新值,必须新开一个终端再跑sencha which。这一步我踩过一次很深的坑:在旧窗口里反复执行 sencha 一直失败,还以为是安装包坏了,实际上是 PATH 没刷新。

2.4 用 npm 管理环境:适合 Node 重度用户的另一条路

如果你本身就在 Node 生态里干活,Sencha 也提供了基于 npm 的环境管理方式。这个方法和 ZIP 安装的区别在于依赖来源和工程组织方式变了——框架依赖会写进 package.json,后续升级更集中,整个环境更像一个普通 Node 工程。

官方文档里有两份对照指南,一份叫 Getting Started with the ZIP File,另一份叫 Getting Started with NPM。ZIP 路径更适合照着我前面写的流程走;npm 路径适合团队里已经有统一 Node 版本管理(比如用 nvm 固定 Node 版本)的场景。

走 npm 路线时有个实际的坑:公司内网如果配了私有 npm registry,需要确认 Ext JS 相关依赖能从配置的源拉下来,否则会卡在依赖解析阶段一直不动。我一般会先单独建一个目录模拟 npm 全局前缀,再在当前会话里执行官方提供的一次性配置脚本。说白了,npm 方式是给爱干净的人准备的,但前提是你对 npm 的全局环境、registry 配置有一定掌控力,否则还是老实用 ZIP 安装更省心。

3. 创建并构建项目:sencha generate app 与 build 参数拆解

3.1 项目文件夹与模板概念

在跑sencha generate app之前,先把身上带的“通用框架思维”放下。Ext JS 的工程不是简单拉一个脚手架就完事的,它的核心逻辑是 Ext JS 7.8 自带多套项目模板,既有默认基础模板,也有商业授权下可选的更多模板。模板决定了一个新工程拥有哪些预设目录、示例代码和组件配置。

首先确定项目要放哪个目录。如果你打算用 Sencha 自带的测试服务器跑开发预览,项目文件夹放在哪都行,Windows 下比如D:\SenchaProject\。如果你要对接商业 Web 服务器,那就得遵守服务器那边的目录规则,不能随便放。

注意:项目路径里同样不建议出现中文和空格。这不是危言耸听,构建工具在解析绝对路径时遇到空格,有些脚本会断在引号处理上。

3.2 生成应用:命令参数逐个说明

打开 PowerShell 的方式有两种,各取习惯:一种是在 Windows 资源管理器里按住 Shift 并右键项目目录,选择“在此处打开 PowerShell 窗口”;另一种是 Win + R 输入 powershell 再手动 cd。进入项目目录之后执行:

# toolkit 可选 classic 或 modern,-ext 表示使用本地已安装的 Ext JS SDK sencha generate app classic -ext MyApp ./

把这行命令拆开看:sencha是命令入口,generate app是生成应用的动作;classic是 Toolkit 类型;-ext告诉命令使用当前环境里已安装的 Ext JS 版本;MyApp是应用名称,必须符合变量命名规范,不能带横杠、不能数字开头;最后的./表示生成到当前目录。

这里 Toolkit 的选择是整个命令里最重要的参数。Classic Toolkit 主要用 JavaScript 渲染视图,面向桌面端 Web 应用优化;Modern Toolkit 用 CSS 渲染视图,面向平板和手机优化。注意这俩不是“手机只能用 Modern”的绝对关系,两者都可以跑在任何平台,只是侧重点不同。做后台管理系统、传统桌面风格界面就选 classic,做移动端 H5、响应式触屏界面就选 modern。

执行成功后,当前目录下会生成完整的工程骨架。命令行输出的最后一两行会提示你项目已经创建完成,如果卡在某个进度条上不动,多半是网络拉取 SDK 依赖出问题,回头查一下授权是否已激活。

3.3 构建环境:development 与 production 的取舍

项目生成之后不能直接点开看,必须先构建。Sencha Command 提供三类环境构建,我平时用得最多的是前两个:

# 开发环境构建,速度快,保留调试信息 sencha app build development # 测试环境构建,模拟接近生产的包体 sencha app build testing # 生产环境构建,压缩混淆,用于最终部署 sencha app build production

development 环境每次改动后构建都很快,适合日常调试。它的产物体积大,包含源码映射和未压缩模块,浏览器里还能看到原始类名。testing 环境则更接近生产形态,但不做极致压缩,方便测试同事在不暴露源码的情况下部署到仿真环境。production 会做完整的代码合并、压缩和资源指纹化,构建时间也最长。

Trial 授权下跑 production 构建,偶尔会在某个环节提示授权相关的问题,这是评估版限制,不是环境坏了。遇到这种情况先退回 development 继续开发,等商业授权处理好再出包。

4. 项目骨架与 MVC:模板结构、导航编辑与 Ext.define/Ext.create

4.1 看懂 Ext JS 项目文件结构

生成完的基础模板项目,目录看起来比普通 Node 工程多了一层抽象。打开根目录会发现几个关键组成部分:app目录放的是业务代码,下面按view、controller、store、model组织;resources目录放静态资源;sass目录放样式源码;根目录下还有app.json这个项目配置文件,它定义了应用名称、页面入口、要加载的组件包等元信息。

我第一次打开这个结构时有点不适应,因为页面不是从 index.html 直接搭出来的,而是从app.json里声明的应用入口启动,再由框架负责加载 Viewport、主视图和对应的控制器。这种设计的底层逻辑就是官方强调的 MVC 架构:Model 负责数据字段定义,Store 负责数据获取和缓存,View 负责界面渲染,Controller 负责业务逻辑和事件分流。

IDE 选择上,Visual Studio Code 配 Rapid Ext JS 插件是当下比较顺手的组合。这插件能简化 Ext JS 视图创建,带属性检查器,写组件配置时能少翻不少文档。如果没有这个插件,单靠纯文本编辑也能写,只是提醒你:Ext JS 的配置项非常多,没有提示就特别容易漏逗号或写错属性名。

4.2 编辑导航:从模板菜单到自定义页面

基础模板项目默认自带一个带导航侧栏和正文区域的页面骨架。要往导航里加内容,打开模板的导航视图文件,找到 menu 段落的配置数据源,向其中追加一条新的菜单项即可。

// 假设导航配置文件是 app/view/main/MainView.js 中 navigation 字样出现的位置 // 这里是简化后的菜单项数组,真实模板里会带图标和路由字段 items: [ { text: 'Dashboard', iconCls: 'x-fa fa-home' }, { text: '用户管理', iconCls: 'x-fa fa-users' }, { text: '数据网格示例', iconCls: 'x-fa fa-table' } ]

菜单项里的text是显示文本,iconCls对应的是一组图标类名。注意每条菜单项本身只负责“在导航里显示一环”,点击之后要切换右侧内容区,还需要联动主控制器里的逻辑,或者靠路由配置把菜单和视图对应起来。第一次做示例时,建议把菜单项的 dismissed 配置和视图引用的路径保持一致,这样点进去不会白屏。

4.3 MVC 的两个基础方法:Ext.define 与 Ext.create

在 Ext JS 代码里出现频率最高的两个 API 就是Ext.define和Ext.create。前者用来定义一个新的类,包括配置项、方法、继承关系;后者用来实例化一个已经定义的类。这个区别必须分清楚,因为示例代码里经常先 define 一个类,然后在别处 create 它。

// 定义一个数据模型类 Ext.define('MyApp.model.Person', { extend: 'Ext.data.Model', fields: ['name', 'age', 'city'] }); // 在视图逻辑中创建该模型的实例 let person = Ext.create('MyApp.model.Person', { name: '张三', age: 30, city: '上海' });

上面这段代码体现了 MVC 里 M 那一层最常见的写法:用Ext.define声明模型字段,再用Ext.create构造数据对象。extend声明继承自哪个基类,fields定义字段名称,实例化时传入的对象会按字段规则解析。如果字段名拼写不一致,后面的数据展示环节会得到 undefined 而不是报错,这一点尤其容易把人带偏。

5. 常见问题与排查:从安装到构建的 5 个经典翻车现场

5.1 安装与命令执行阶段的典型问题

现象一:执行sencha which报“不是内部或外部命令”,重装一遍还是找不到。

原因:99% 是 PATH 没有生效,不是安装坏了。最常见的是安装后没有新开终端,旧窗口的环境变量快照里没有 Sencha Command 的 bin 目录。

解决:先重开 PowerShell,再跑一次sencha which。如果还是不行,用where.exe sencha查找安装路径,找到后手动执行setx PATH "%PATH%;<实际bin目录>",设置完再重开终端。

现象二:安装器被 Microsoft Defender 拦截,显示未知发布者警告。

原因:安装器需要写入系统目录和修改环境变量,Defender 对这类行为默认保守。

解决:点击 Run Anyway 继续。如果你在公司域环境里,组策略可能禁止直接放行,那就找 IT 申请白名单,或者下载时核对官方校验值,确保下载的安装包没被改动过。

现象三:安装时勾选了 Compass 扩展,后面构建时满屏 Ruby 相关报错。

原因:Compass 是老版本 Ext JS 用来编译样式的组件,7.8.0 已经不需要,但装了它会在构建链路里引入一套额外的样式编译逻辑,环境里没有对应的 Ruby 环境就会报错。

解决:卸载 Sencha Command 重装,安装时取消勾选 Compass 扩展。也可以用系统自带的“应用和功能”先卸载再装,顺手把遗留的样式编译临时文件清掉。

5.2 项目生成与构建阶段的典型问题

现象四:执行sencha generate app classic -ext MyApp ./卡在下载进度条,或者报 SDK 引用错误。

原因:常见两个方向,一是授权未激活或 Trial 过期,导致 SDK 拉不下来;二是网络到官方资源服务器不通,下载动作一直在重试。

解决:先确认授权状态,如果走的是 Commercial 流程,重新执行软件激活步骤。网络问题则检查公司代理配置,必要时给命令行工具设置代理环境变量,或者换网络环境再试。这里没有捷径,卡住时看日志里的 URL,手动访问一下就知道是授权还是网络问题。

现象五:菜单点击后右侧内容区白屏,浏览器控制台报找不到类名。

原因:我见过最多的一种情况是,在新视图文件里写了Ext.define('MyApp.view.ExampleGrid'),却没有在app.json的 views 数组里声明这个类,也没在控制器里用 requires 引入。Ext JS 的类加载机制依赖这些声明,缺了它运行时不知道要加载哪个文件。

解决:在app.json的views节点里追加新视图类的完整类名,或在对应控制器顶部加requires: ['MyApp.view.ExampleGrid']。改完重新构建 development 环境再刷新页面。

6. 装完怎么验证跑通:Grid、Chart、Form 三视图本地运行检查

新环境装完,与其对着官方文档一行行看,不如直接拿三个视图去验证链路通不通:数据网格(Data Grid)、柱状图(Bar Chart)、表单(Form)。这三个刚好对应数据可视化、图表渲染、交互收集三大高频场景,也是 Ext JS 对外宣传最重的卖点,所以只要它们能跑通,这套环境基本就没问题。

先起开发服务器。在项目根目录执行:

sencha app watch

这个命令会启动一个本地测试服务器并监听代码变化,改完源码自动触发增量构建,浏览器刷新就能看到效果。在浏览器里打开控制台确认没有红色报错,然后按导航菜单依次进入数据网格示例。网格能显示分页数据、表头能排序、筛选框输入后列表能过滤,说明数据链路通了。数据不通时优先检查拉数据用的类配置:字段名是否和服务器返回的 JSON 字段匹配,以及数据源返回的是数组还是带 root 属性的对象,这两处最容易挂。

再打开柱状图示例。图表渲染成功的关键是应用配置里已经启用了图表功能,否则视图加载时直接提示找不到图表类,并且七成图表相关的坑都是数据为空导致的——柱状图对空数据集的渲染结果很迷惑,一片空白但不报错。给图表的 store 手动塞一条静态数据,如果柱子出来了,那就可以断定问题在你自己的数据代理上。

最后进入表单示例,输入内容、点击提交,确认表单能收集字段并且控制器的处理方法被触发。这里也可以反向验证 MVC 架构:视图里点击事件把动作交给控制器,控制器再操作 store 或渲染结果,一条链路走完,架构就通了一半。

从那以后,我每次在别人的机器上装完 Ext JS 环境,都会强制走一遍网格、图表、表单三连验证,最多不超过十分钟,比翻几十页文档判断环境好坏快得多。希望帮到你。

本文还有配套的精品资源,点击获取