b端基础设施如何管理(2)

177 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情

前面说了那么多sdk设计要考虑的问题,我们来看看sdk要暴露哪些api呢,我们一起来梳理一下

首先就是react及react-dom等基础依赖包,项目没这些东西跑不起来,我们要做到sdk里,该怎么搞呢

我们如果需要用到这些个库,需要导出来,所以需要基础库的api,基础库都给整进来

所有的东西都搞一套整整齐齐的,那么有个问题,如果与现有版本不兼容,那么怎么搞?简单,直接用最新的,但是有个问题,多个版本如何共存,这个对于js来说通常不会出现全局变量彼此覆盖的情况,但是需要考虑万一,这个只能多测测了。对于css来说,建议搞一套统一的皮肤,但是这套皮肤有自己的一套命名空间,这样可以解决一个多版本共存的问题.

另外如果要使用多版本共存的方案,antd等仓库需要考虑到哪个库为主库,哪个库为辅助库的问题,这样可以解决仓库冲突的问题。很多时候技术解决不了所有的问题,需要引入一些规则是做限制。

如果想在一个大的包里引用很多小的包,其实最好的办法,就是把所有的内容都导入到这个仓库里,但是这个方法其实比较笨,但是最安全稳定,但是这样会导致库的维护成本增高。但其实想一想,这个方案,好像也不是不可以。另外一个方案就是利用影子库,但是影子库的方法实际上比较hack,无法保证仓库引用的正当性,可能会出现一些引用库版本异常的情况,并且受npm版本限制比较大。