前言
昨天在写点什么东西的时候,发现有些逻辑可以搞成一个 npm 模块。
找了下看看,有没有什么好用现成模板用于开发。。发现并没有;
那有需求就解决需求。。
需求
- 基于当前的流行技术栈选型(rollup 4.x + typescript 5.x)
- 提供一个最小化模板
- 纯粹的函数库打包,不包含任何视图
- 有进一步需求可以自行扩展模板仓库的内容
仓库信息
标题 | 地址 |
---|---|
仓库名 | rollup-typescript-lib-boilerplate |
仓库地址 | github.com/crper/rollu... |
提供了哪些特性呢
还是最小化原则,一个标准的现代化开发模板,包括各种配置文件
-
Vitest 做单测
-
Rollup(v4.x) 打包
-
release-it 做 changlog 和版本管理
-
githooks门禁拦截 (husky and init hooks: pre-commit, commit-msg)
- eslint、prettier、commitlint、vitest
-
标准化的 npm package.json( 基本该要的字段都覆盖了)
-
typescript v5.x 做类型约束,能自动生成d.ts
命令的 GIF 效果图
就是工程内package.json npm scripts
的演示!
FAQ
Q: 可能有人会想为什么不用 Vite!!!
Vite 虽然有提供打包 lib 的能力,也能混入 rollup 的 build options , 但是还是不够细致的配置,Vite 本身定位更是面向项目工程脚手架。
其实我折腾过了,出了一些奇怪的报错,他们官方 issue 也没有,Vite 不去翻源码简直就是个黑盒,我何必呢。
rollup 本身定位就是库打包的,以前做组件库打包也是用的这个(v2.x),插件丰富,钩子也丰富。现在直接一步到位用最新的玩玩。。
Q: 安利一下 vitest
vitest,这个名字我当初刚看到的时候,我还以为是给 vue 专用的单测框架。为什么会花时间去了解这个,上手搞了个vscode weview 开发的时候用了一下 vue3 的体系,顺带知道了这么个玩意。
总体玩下来,说真的,我觉得好用,执行相当快,适用面也广(不依赖单一框架),快照,覆盖率,断言都能做。会 jest 这个基本没啥上手成本!!!
拿来即用!!
结语
有什么想法可以提 issue 或者 pr , 有不对之处请留言,会及时修正,谢谢阅读!