将 wechaty-puppet 升级为1.0以上版本
前言
随着 Wechaty 1.0 版本的发布,Wechaty 的发展正式进入新的阶段,但要升级整套工具到1.0版本以上并不容易。这篇博客将简单介绍 wechaty-puppet 升级的主要注意事项,并提供一个简单的过渡方案。
总体思路
Wechaty 1.0采取了模块化、管道化的设计,将基础功能写在骨架(skeleton)中,然后通过mixin挂在登录、消息、io 等功能。这样做的主要目的是避免回调过多,以及方便测试。wechaty-puppet也采用这一思路重新设计,不同的导出被放在不同的模块中,而不是一股脑塞在 puppet 中。同时,puppet 实现应该自己引用需要版本的其他包例如 file-box 等。这也是降低耦合度的设计。
数据类型导出
如上一节所说,数据类型不再能直接从 wechaty-puppet 中导出,而是需要从不同的模块中导出,并且名字也有所修改。例如:
旧:
import {
Puppet, ScanStatus, EventMessagePayload } from 'wechaty-puppet'
class xxxPuppet implements Puppet {
// ...
async onScan