一个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 , 有不对之处请留言,会及时修正,谢谢阅读!

相关推荐
laoli_coding12 小时前
如何配置HTTPS站点访问的免费SSL域名证书
网络协议·https·node.js·ssl
To_OC12 小时前
手写 AI 编程 Agent 的命令执行工具:我被 child_process 坑出来的实战经验
后端·node.js·agent
柯克七七19 小时前
我把 bug 修得太干净了,测试组以为这个模块本来就没问题
前端·javascript·typescript
大家的林语冰20 小时前
👍 Rust 为 Node 插上翅膀,反超 Bun 和 pnpm,一体化工具我也有!
前端·javascript·node.js
退休倒计时20 小时前
【每日一题】LeetCode 39. 组合总和 TypeScript
算法·leetcode·typescript
yyt36304584120 小时前
KlineChartQuant Tooltip 高频交互 200FPS 性能优化完整复盘
前端·经验分享·性能优化·typescript·vue·交互·chrome devtools
Kel1 天前
Node.js 本质:从全脉络视角理解运行时原理
javascript·设计模式·node.js
ShiXZ2131 天前
指令集-NPM 常用指令速查手册
前端·npm·node.js
用户0934077735141 天前
HarmonyOS WPS Open SDK 实践:办公审批附件「打开—编辑—回传」代码实现
typescript·harmonyos
Flynt1 天前
TypeScript 5.8 让我少踩了一个大坑,顺手再聊聊 --erasableSyntaxOnly
前端·javascript·typescript