如何在多个ExtJS应用中复用自定义类/单例而无需重复拷贝代码
多项目复用自定义ExtJS类的实现方案
以下三种方案都可以实现自定义类跨项目复用,无需重复拷贝代码:
- 方案1:配置类加载路径映射(轻量场景首选)
把所有通用类统一存放在一个所有项目都能访问到的公共目录,按类的命名空间组织文件结构,你提供的util.ConfigData类对应的文件路径就是[公共目录根路径]/util/ConfigData.js。
在每个项目的入口处配置ExtJS的类加载器路径映射即可:
Ext.Loader.setPath({ // 命名空间和对应路径绑定 'util': '/your/public/dir/util' });
之后在项目中直接通过requires: ['util.ConfigData']声明依赖就能正常使用,公共类更新后所有项目同步生效,不需要修改项目内的代码。
- 方案2:打包为独立公共资源包
用Sencha CMD把所有通用类打包成一个独立的bundle文件,比如命名为ext-common-bundle.min.js。
每个项目在引入ExtJS核心库之后,直接引入这个公共包即可使用所有封装好的自定义类:
<script src="ext/ext-all.min.js"></script> <script src="/your/public/ext-common-bundle.min.js"></script>
这种方案不需要单独配置加载路径,适合公共类迭代频率不高的场景,更新时只要重新打包替换公共包文件即可。
- 方案3:工作区+本地包管理(规模化多项目场景首选)
如果团队内有多款ExtJS开发的项目,直接用Sencha CMD创建全局工作区,把通用类封装为工作区下的本地私有包,放在packages/local/目录下。
每个项目都在该工作区下创建,只需要在项目的app.json中声明对公共包的依赖即可:
"requires": [ "your-common-package-name" ]
这种方案可以借助Sencha CMD的能力自动处理依赖、按需构建,适合团队规模化开发场景。
示例类使用方法
完成配置后,你提供的util.ConfigData可以在任何项目中直接调用:
util.ConfigData._debug = true; util.ConfigData.log('公共类调用成功');
内容的提问来源于stack exchange,提问作者Jens H
相关产品推荐
相关产品推荐

