cocos creator教程:框架 - 封装

【muzzik 教程】:框架 - 封装

个人认为如何封装不重要,重要的是封装后还要保证易修改和易用才是最重要的,所以这里排除把框架代码打包、以及引用 npm 模块的方式

需要做的事情

  • 不影响代码集成后的类型;比如 namespace 集成后还是 namespace,而不是一个 Object,这点很重要
  • 部分接口/属性不想暴露给外部
  • 框架最先加载

实现流程

1. 采用 npm 包的集成导出方式

mk_export.ts

export { default as a } from "./mk_a.ts";
export { default as b } from "./mk_b.ts";

mk.ts

import * as mk from "./mk_export.ts";

export default self['mk'] = mk;

2. 使用 npm 包@microsoft/api-extractor生成一个 d.ts 文件

https://api-extractor.com/

3. 使用全局或者 cocos 的导入映射

全局

  1. api-extractor 生成的 d.ts 文件 import 改为 ///<reference path="xxx"/> 格式

导入映射

  1. 设置import-map.json中 mk 的映射路径为生成的 mk.ts
  2. tsconfig.json 中设置 mk 的类型声明为 mk.d.ts
"paths": {
	"mk": ["./declare/mk.d.ts"]
}

到这里我们就把 mk 的类型转到了生成的 mk.d.ts,而对象还是 mk.ts 的默认导出,而使用 @microsoft/api-extractor 生成 d.ts 文件也可以自定义,非常方便

框架加载方式

使用插件脚本重载self.cc.assetManager.loadBundle方法,将框架加载后还原

posted @ 2023-01-07 23:22  Muzzik  阅读(421)  评论(0编辑  收藏  举报