Skip to content

扩展包的定义

扩展包需要在 package.json 文件里预先定义好所有功能以及一些基础信息,如下所示:

JSON5
{
    "package_version": 2,
    "version": "1.0.0",
    "name": "first-panel",
    "tilte": "i18n:first-panel.title",
    "description": "i18n:first-panel.description",
    "author": "Cocos Creator",
    "editor": ">=3.4.2",
    "main": "./dist/main.js",
    "dependencies": { ... },
    "devDependencies": { ... },
    "panels": { ... },
    "contributions": {
    },
    "scripts": {
        "build": "tsc -b",
        "watch": "tsc -w"
    }
}

package_version

类型 {number} 必填

扩展的版本号,用于提交扩展的版本校验,以及扩展自身的一些升级,数据迁移作为对比的依据。

version

类型 {string} 必填

扩展的版本号,主要用于显示,如需进行逻辑判断,推荐使用 package_version

name

类型 {string} 必填

扩展的名称,这个名字需要和扩展文件夹一一对应。

title

类型 {string} 可选

扩展的显示标题,当配置了 title 时,在需要展示扩展名的地方会优先采用 title,支持 多语言(i18n) 配置。

description

类型 {string} 可选

扩展的描述,简单概括一下扩展的功能。支持 多语言(i18n) 的多语言语法。

author

类型 {string} 可选

扩展作者的名字,将会显示在 "扩展管理器" 内。

editor

类型 {string} 可选

描述扩展支持的编辑器版本,符合 semver 语义化版本控制规范

main

类型 {string} 可选

一个 js 文件的相对路径,定义功能入口文件,当扩展启动的时候,就会执行 main 字段指向的 js 文件,并根据流程触发或执行对应的方法。

panels

类型 {[name: string]: PanelInfo} 可选

扩展内定义的面板信息。可以使用 Editor.Panel.open('hello-world.list'); 打开定义好的面板。详细信息请参看 面板系统

contributions

类型 {[name: string]: any} 可选

contributions 提供了与编辑器各功能系统交互的能力,更多信息请参看文档 增强已有功能

scripts

类型 {[name: string]: any} 必填

扩展可执行的命令行。