持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第27天,点击查看活动详情
我们建一个npm包,那么怎么定义npm包里的各项api呢,api的设计非常重要,好的api设计能让别人对你的库的使用方法非常清楚,不容易出错。
首先我们需要知道我们做这个npm包的目的,以及怎么达成这个目的。比如:我们的目的就是提供些前端的常用能力以及二三方的包,那么我们该如何达成这个目的呢?首先就是我们需要想想怎么实现这三项能力。
我们需要把要实现的功能列举出来,看看每项功能需不需要前端暴露一个api让使用的用户去传入参数才能实现。如果需要的话,那么传入参数的时机和形式又是什么样的呢。
我们首先可以提供一个init函数,将需要注册的内容初始化一下。init函数里,我们也可以进行一些特殊的处理。 我们盘点了一下可以分为以下几个处理的类别:
- 需要用户进行一下初始化的内容,没啥技术含量,通常为传入一个常量,如部署环境、版本、用户信息、权限等。但是这些内容我们面临一些选择,就是初始化搞一搞还是单独去传入这个值。总的来说都不是强制的。那要不然就单独提出来自己去注册?
- 像axios这种的,或者是arms这种的,需要传配置,但是又比较麻烦的,感觉需要传不少参数的,而且没啥通用性的,是单独提供一个api,还是在init函数里搞?建议还是提供个函数单独处理吧。这样清楚一点
另外我们需要时刻注意不能违背我们的原则,对基础能力来说,就是可替换啦。
下一篇我们需要看看二方和三方包是怎么处理的。