package.json 字段参考

name (String)

你的扩展包名字。扩展包名字是全局唯一的,他关系到你今后在官网服务器上登录时的名字。

version (String)

版本号,我们推荐使用 semver 格式管理你的包版本。

description (String)

一句话描述你的扩展包是用来做什么的。

author (String)

注明扩展包的作者,可以是你的名字,团队的名字或者公司的名字。

main (String)

入口函数文件。通常我们会在包中存放一个 main.js 文件作为入口函数文件。你也可以在入口函数文件放在扩展包中的其他位置例如:main/index.js,只要在 main 字段中正确书写你的文件的相对路径即可。

main-menu (Object)

主菜单注册,主菜单注册的键值(Key)是一段菜单路径,注册信息为一个对象,关于注册信息可详细阅读主菜单字段参考

其中菜单路径为一份 posix 格式的路径,菜单会根据路径中的名字,依次注册到主菜单中。例如:“My Package/Preview/Foo Bar” 将会在主菜单中寻找 My Package > Preview 这个菜单路径,如果寻找过程中没有发现对应的菜单项,将会自动添加。最终 Cocos Creator 会将 “Foo Bar” 添加到对应的路径中,如图:

menu-path

panel (Object)

面板注册,面板注册的键值(Key)是一个以 panel 开头的字符串,字符串后面可跟上后缀名用于多面板的注册。注册完的面板,将会生成以 ${包名}${面板后缀名} 为组合的面板 ID,如果没有后缀名(通常我们如果注册一个面板就不会带后缀),则面板 ID 直接等于插件包的名字。

关于多面板注册,这里我们提供了一个简单的例子,在 package.json 中:

  1. {
  2. "name": "simple-package",
  3. "panel": {
  4. "main": "panel/index.js",
  5. "type": "dockable",
  6. "title": "Simple Panel",
  7. "width": 400,
  8. "height": 300
  9. },
  10. "panel-02": {
  11. "main": "panel-02/index.js",
  12. "type": "dockable",
  13. "title": "Simple Panel 02",
  14. "width": 400,
  15. "height": 300
  16. },
  17. }

这样注册完的面板,将会生成两份面板 ID 分别为:simple-packagesimple-package-02.

关于面板注册信息可详细阅读面板字段参考

reload (Object)

可以通过 reload 字段定制扩展包自动重载的文件监控规则,未做声明时的默认规则如下:

  1. "reload": {
  2. "test": [ "test/**/*", "tests/**/*" ],
  3. "renderer": [ "renderer/**/*", "panel/**/*" ],
  4. "ignore": [],
  5. "main": []
  6. }

runtime-resource (Object)

插件通过在 package.json 文件中配置 runtime-resource 字段来 mount runtime 资源到资源管理器中。配置的格式如下:

  1. "runtime-resource": {
  2. "path": "path/to/runtime-resource",
  3. "name": "runtime-res-name"
  4. }

最终在资源管理器中由插件 mount 的文件夹名称为 [packageName]-[runtime-resource.name]。且插件导入的资源文件夹为只读的。

需要注意的是,通过配置 runtime-resource 字段将扩展包中的文件夹 mount 到项目资源后,本身就具备自动同步的功能,也就是对扩展包中的 runtime-resource 进行的修改会自动同步到项目资源中并触发编译等流程,所以应该将 runtime-resourcepath 字段指向的路径添加到 package.json 中的 reload.ignore 中,否则会引起插件的重复加载:

  1. "runtime-resource": {
  2. "path": "my-components",
  3. "name": "components"
  4. },
  5. "reload": {
  6. "ignore": ["my-components/**/*"]
  7. }

scene-script (String)

scene-script 字段用于声明一个扩展包内的脚本,在该脚本中可以使用引擎 API,并访问当前场景中的节点和组件。

声明形式如下:

  1. "scene-script": "scene-walker.js"

该字段的值是一个脚本文件的路径,相对于扩展包目录。详细的用法和工作流程请阅读 调用引擎 API 和项目脚本