玄学?不存在的!!!让插件开发如CocosCreator游戏开发一样简单

plugin_template

基于CocosCreator2.x和egf-cli的插件开发模板

简介

Cocos Creator的插件体系非常强大,可以让开发者开发出各种强大高效的插件来辅助游戏开发,但由于2.x插件体系本身不完全支持ts,还有各种玄学,导致插件开发的门槛有点高。

我刚接触插件开发,就觉得这样开发非常麻烦,就想有没有完善一点的方案,让我如丝般顺滑地开发插件。到处查了一下,也只查到了一个不成熟的方案,以及一些规避方法,用起来还是很麻烦。

所以我决定自己整了这一套方案。它可以让你像在写Cocos Creator脚本一样,引用脚本和npm不用关心路径转换什么的,就只管写,调试就完事了。

于是基于EasyGameFramework

框架的egf-cli工具制作了这个模板

3.0的插件体系更加强大了,这个模板可以让2.x插件和3.0插件之间的差异大大减小

帮助大家更快、更高效、更方便地开发插件,上架Cocos商店,赚Q

特性

  1. 完全支持ts开发(渲染进程可以import相对路径ts,不用而外使用接口进行路径转换)(针对2.x)

  2. 监听自动编译

  3. 支持import单独的csshtml文件

  4. 主进程和渲染进程,以及多个渲染进程之间共用代码(针对2.x)

  5. 支持将npm模块,打包输出js,发布后的插件就不用npm install

  6. 支持渲染进程引用插件安装的npm(针对2.x)

引擎2.x插件项目目录结构


-- dist 编译输出目录

-- editor-api-dts 编辑器接口声明文件

-- node_modules npm模块安装目录

-- src typescript源码目录

    -- main 主进程代码

    -- renderer 渲染进程代码

    -- common 共用代码

-- egf-plugin-cccsshtml.js 编译插件,用于import css 和 html文件

-- egf.compile.js 编译配置文件

    如果有增加或者修改面板入口ts文件(改名也属于),则需要修改option.entry里的编译入口路径

-- fixrequire.js 引用纠正重写逻辑

引擎3.0插件项目目录结构


-- dist 编译输出目录

-- editor-api-dts 编辑器接口声明文件

-- node_modules npm模块安装目录

-- src typescript源码目录

    -- main 主进程代码

    -- renderer 渲染进程代码

    -- common 共用代码

-- egf-plugin-cccsshtml.js 编译插件,用于import css 和 html文件

-- egf.compile.js 编译配置文件

    如果有增加或者修改面板入口ts文件(改名也属于),则需要修改option.entry里的编译入口路径

使用

  1. 下载插件

  2. 用一个编辑器打开插件工程

  3. npm installyarn install

开发

  1. 启动自动编译

    
    npm dev 或 yarn dev
    
    
  2. 开始写代码:grin:

    1. 正常的引用相对路径的脚本

    2. 正常引用npm包

    3. 还可以引用htmlcss

一切都让编译给你处理好了

如丝般顺滑

构建发布

构建脚本解释


"scripts": {

    "build": "egf build -f cjs -m -ngd -c"

},

-f 指定模块规范,插件的脚本模块规范为commonjs

-m 压缩js

-c 指定编译配置文件,默认egf.compile.js

-ngd 不输出声明文件

构建命令


npm build 或 yarn build

注意事项!!!!!!!

构建工具默认将插件逻辑里用到的npm包输出到dist下了,所以打包时,只需压缩dist文件夹以及包含必要的文件,忽略整个node_modules

如果在编译配置里忽略了npm包的输出,比如


const option = {

    ...

    externalTag:["@ailhc"],

}

则npm包的代码就不会输出到dist下,需要你在打包发布时把node_modules带上,或者要求使用插件者npm install一下

如果发布插件需要包含 node_modules 则需要先手动移除构建工具哦,避免把编译工具打包进去

可以先删除package.json的devDependencies,然后执行(清除构建工具依赖)


npm install 或 yarn install

然后再撤销package.json的devDependencies

后续计划

  1. 自动化发布插件支持

使用视频

bilibili

加群交流反馈

QQ群:1103157878

关注作者获取更多内容

微信搜索公众号:玩转游戏开发

或扫码关注:img

7赞

更新了3.0的支持

我看了,这个不得了,开发Creator插件的插件 :+1:

1赞

厉害了 :+1: :+1: :+1: