English | 简体中文
一个用于 TypeScript Monorepo 多包库项目 的脚手架, 集成:构建、开发构建、自动化测试、发版、代码规范能力
| 功能 | 命令 |
|---|---|
| 构建 | npm run build |
| 开发模式 | npm run dev |
| 测试 | npm run test |
| 代码检查 | npm run lint |
| 依赖检查 | npm run depcheck |
| 清理 | npm run clean |
| 设置版本 | npm run version |
| 添加子包 | npm run newlib |
| 发beta版 | npm run beta |
test # 自动化测试项目
scripts # 打包脚本和配置
packages # 子包src # 源码目录
assets # 静态文件-
创建测试文件:
src/index.test.ts -
引入子包:
pnpm add ../packages/mylib -
编写测试代码
import { fn } from 'mylib'; describe('mylib index', () => { it('should be defined', () => { fn(); expect(true).toBe(true); }); });
-
运行测试:
npm run test测试会运行两次,esmodule、commonjs
建议所有子包的自动化测试都在此项目编写
-
测试代码和最终使用的代码完全一致, 示例
import a from 'libname' ✅ import a from '../src/**' ❌
-
支持import库中的任一代码文件
import lib from 'libname/utils/a.ts';
-
运行产物,而非源码。
npm run test会执行两次测试: commonjs、esmodule
项目使用 tsdown 打包, 修改对应的配置即可
- 全局配置:
scripts/tsdownConfig.ts - 单个项目配置:
packages/*/tsdown.config.ts
- 格式化:保存文件、commit时,会使用
prettier格式化 - 兼容性:处理的兼容如下
- polyfill
- commonjs、esmodule差异,示例
import.meta.dirname