就是共用组件的概念,一些可以共用的前端代码封装成组件使用并可以放到中央库和本地库。感觉是借鉴了Angular JS的设计。对后端比较了解的话,可以类比成Java中的依赖包放到Maven库中管理。
code代码 - 给其他包或是应用使用, 通过 require方式导入
theme主题- 应用的主题样式
locale本地化
包的创建是在工作区(Workspace)中进行的。
关于工作区,可以参考:
[Ext JS6]工作区-Workspace
命令行切换到工作区目录,以创建一个本地的名字为mypackage的包为例。
执行:
sencha generate package mypackage
执行之后会在工作区目录中创建包的目录,结构如下:
packages/ # 包目录
local/ # 本地工作区包
remote/ # 下载的包
注:包创建的默认路径也可以修改。
创建的包下包含不同子目录,存放不同类型的代码。
cmd编译器将类和文件视为同义词,如果需要某个文件中的类,则这个文件中所有的类都会导入,而不能切割。
resources-资源
resources目录存放包需要用到的静态资源。
当应用使用这个包的时候,会把这个目录复制到各自resources 的子目录中。
以上面为例 目录就是resources/mypackage
overrides -重写
overrides 目录用放需要重写的。
应该谨慎使用此机制,因为放置在此文件夹中的所有代码将自动应用到使用此包的任何应用程序中。
应用如有需要使用包, 方式是在app.json中加入:
{
"name": "MyApp",
"requires": [
"mypackage"
]
}
除此还需要使用sencha app build 或者sencha app refresh 命令让导入生效。一般运行sencha app refresh较多。
运行之后, 会下载包到 packages/remote 目录下。
在文件package.json中,有两个版本的属性:version (版本) 和compatVersion (兼容版本),
版本定义规范:
x.y.z.b
x-大版本
y-小版本
z-补丁
b-构建编号
设定包的框架和主题, 在package.json文件中加入:
"framework": "ext"
"theme": "theme-triton"
发布包,切换到包的目录下,执行命令:
sencha package build
运行之后会在包路径下产生一个 build 目录。在开发模式运行的时候需要这个目录。
同时会在 build目录下产生一个包名的子目录,里面有一个包名的 .pkg文件。
以上面为例:
mypackage/mypackage.pkg