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

相关推荐
RoyLin18 小时前
TypeScript设计模式:桥接模式
前端·后端·typescript
RoyLin20 小时前
TypeScript设计模式:抽象工厂模式
前端·后端·typescript
RoyLin2 天前
TypeScript设计模式:原型模式
前端·后端·node.js
烛阴2 天前
【TS 设计模式完全指南】懒加载、缓存与权限控制:代理模式在 TypeScript 中的三大妙用
javascript·设计模式·typescript
RoyLin2 天前
TypeScript设计模式:单例模式
前端·后端·node.js
RoyLin2 天前
TypeScript设计模式:工厂方法模式
前端·后端·node.js
RoyLin2 天前
TypeScript设计模式:模板方法模式
前端·后端·node.js
一大树2 天前
Rollup 核心原理:ES Module 静态分析如何实现极致打包
rollup.js
RoyLin3 天前
TypeScript设计模式:适配器模式
前端·后端·node.js
奔跑的蜗牛ing3 天前
Vue3 + Element Plus 输入框省略号插件:零侵入式全局解决方案
vue.js·typescript·前端工程化