一个typescript 5 + rollup 4 打包lib模板仓库实现

前言

昨天在写点什么东西的时候,发现有些逻辑可以搞成一个 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 的演示!

npm-scripts-intro

FAQ

Q: 可能有人会想为什么不用 Vite!!!

Vite 虽然有提供打包 lib 的能力,也能混入 rollup 的 build options , 但是还是不够细致的配置,Vite 本身定位更是面向项目工程脚手架。

其实我折腾过了,出了一些奇怪的报错,他们官方 issue 也没有,Vite 不去翻源码简直就是个黑盒,我何必呢。

rollup 本身定位就是库打包的,以前做组件库打包也是用的这个(v2.x),插件丰富,钩子也丰富。现在直接一步到位用最新的玩玩。。

Q: 安利一下 vitest

vitest,这个名字我当初刚看到的时候,我还以为是给 vue 专用的单测框架。为什么会花时间去了解这个,上手搞了个vscode weview 开发的时候用了一下 vue3 的体系,顺带知道了这么个玩意。

总体玩下来,说真的,我觉得好用,执行相当快,适用面也广(不依赖单一框架),快照,覆盖率,断言都能做。会 jest 这个基本没啥上手成本!!!

拿来即用!!

结语

有什么想法可以提 issue 或者 pr , 有不对之处请留言,会及时修正,谢谢阅读!

相关推荐
哆啦A梦15889 小时前
Vue3魔法手册 作者 张天禹 06_监控
前端·vue.js·typescript
哆啦A梦158817 小时前
Vue3魔法手册 作者 张天禹 09_props的使用
前端·vue.js·typescript
哆啦A梦158817 小时前
Vue3魔法手册 作者 张天禹 11_自定义hooks
前端·vue.js·typescript
We་ct18 小时前
LeetCode 146. LRU缓存:题解+代码详解
前端·算法·leetcode·链表·缓存·typescript
x-cmd2 天前
[x-cmd] Node.js 的关键一步:原生运行 TypeScript 正式进入 Stable
javascript·typescript·node.js·x-cmd
盖头盖2 天前
【nodejs原型链污染】
node.js
御坂10101号2 天前
JIT 上的 JIT:Elysia JS 的优化实践与争议
开发语言·javascript·网络·性能优化·node.js·express
UIUV2 天前
构建Git AI提交助手:从零到全栈实现的学习笔记
前端·后端·typescript
belldeep2 天前
nodejs: 能在线编辑 Markdown 文档的 Web 服务程序
node.js·markdown·mermaid
佛系快乐土2 天前
【AI角色扮演游戏平台】记录开发过程中遇见的问题
typescript·node.js