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

相关推荐
星空下的曙光7 小时前
Node.js crypto模块所有 API 详解 + 常用 API + 使用场景
算法·node.js·哈希算法
xiaohe060111 小时前
👋 一起写一个基于虚拟模块的密钥管理 Rollup 插件吧(四)
vite·rollup.js
青灬河12 小时前
实现企业级全栈应用服务框架-Elpis(一)
vue.js·node.js
星空下的曙光14 小时前
Node.js events模块所有 API 详解 + 常用 API + 使用场景
node.js
无责任此方_修行中15 小时前
我的两次 Vibe Coding 经历,一次天堂,一次地狱
后端·node.js·vibecoding
程序铺子19 小时前
如何使用 npm 安装 sqlite3 和 canvas 这些包
javascript·npm·node.js
ttod_qzstudio19 小时前
解决 Vue 3 + TypeScript 中 v-for 循环类型推断问题
前端·vue.js·typescript
星空下的曙光21 小时前
Node.js 事件循环(Event Loop)
node.js
今天头发还在吗1 天前
【React】动态SVG连接线实现:图片与按钮的可视化映射
前端·javascript·react.js·typescript·前端框架
冷冷的菜哥1 天前
react多文件分片上传——支持拖拽与进度展示
前端·react.js·typescript·多文件上传·分片上传