js lib seed|项目复盘

334 阅读2分钟

项目简介

先献上我的 git 库吧,由于我后期发现已经有更好的库 jslib-base,而且那个库也有很多人在进行共建,所以我的项目后续就停止更新了.

项目背景

javascript 由于其强大的 npm 库,使得我们 code 的更加流畅,同时有时自己也需要写一些小的 npm 库来满足我们自己的项目,这时候往往需要重新搭个工程,然后适配各种格式 (amdesumd) 的导出,就感觉很麻烦,如果能有个种子工程,类似于其他框架的脚手架。我只关注逻辑的实现,打包、测试、发布这些通用的脚本就交给种子工程统一实现。

实践过程

初始化

其实开始的过程很简单,就是使用 npm init 先初始化一个工程,既然是基础工程,肯定需要 README 对工程进行简单说明,然后就是写个入口文件,初始化 test,必要的 script 命令.

  • npm run build 打包
  • npm run test 测试
  • npm run release 发布
打包

打包的时候得考虑使用什么方式打包,当时查看了比较流行的 js 打包工具,一个就是 webpack, 一个就是 rollup, 对比之后,发现 rollup 更适合这种 js 库的打包,主要就是方便,配置简单,而且可以适配各种输出格式。

测试

使用了 jest 库的测试用例的执行,一个好的 lib 肯定要有完备的测试用例来保证代码的稳定性。

发布

发布的话其实大部分还是手动,需要手动更改版本号,然后使用 npm run release进行发布,其实对于一个 lib 库,发布版本应该做成自动化的。

总结思考

虽然这次轮子以有更好的轮子半途而废,但是这次实践还是学到了不少东西的。比如:

  1. 了解了 roolup 以及它的一些基础的配置。
  2. 学习了一些 lib 库的小知识,比如如何发包,版本控制,各种 license 的区别
  3. 对于一个好用的库 README 很重要,所以文档输出能力也是前端工程师很需要的技能,我们不光需要自己能懂,还的写的让其他人都能懂。

最后,参加活动哈哈。

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情