billd-monorepo

Billd-Monorepo logo

Billd-Monorepo

基于rollup + pnpm + esbuild搭建的Billd-Monorepo

Version Downloads License

简介

目前 Billd-Monorepo 提供了以下包:

包名 版本
@huangshuisheng/utils npm
@huangshuisheng/components npm
@huangshuisheng/hooks npm

线上文档:http://project.hsslive.cn/billd-monorepo/

安装

npm install '@huangshuisheng/utils';
npm install '@huangshuisheng/hooks';
npm install '@huangshuisheng/components';

使用

尚未发布 1.0 版本,api 可能会随时发生变化,请勿用于生产环境!

具体用法请查看文档:http://project.hsslive.cn/billd-monorepo/

本地调试

本地调试不会构建 umd

npm run dev

本地构建

npm run build

生成文档

使用 typedoc 生成,文档会生成在项目根目录的 doc 目录

npm run doc

如何发版

0.确保 git 工作区干净

即确保本地的修改已全部提交(git status 的时候会显示:nothing to commit, working tree clean ),否则会导致执行 release:local 脚本失败

1.执行本地构建脚本

npm run build

该脚本内部会做以下事情:

  1. 根据 meta/packages.ts,删除 packages 里对应的包的 dist
  2. 根据 meta/packages.ts,打包 packages 里对应的包,生成 dist
  3. 根据 meta/packages.ts,复制 packages 里对应的包的 package.json 和 README.md,以及项目根目录的 LICENSE 文件,复制到对应包的 dist

2.执行本地发版脚本

npm run release:local

该脚本内部会做以下事情:

  1. 根据用户选择的版本以及 meta/packages.ts,更新对应 packages 里的包的 package.json 的 version
  2. 对比当前版本与上个版本的差异,生成 changelog
  3. 提交暂存区到本地仓库:git commit -m 'chore(release): v 当前版本'
  4. 生成当前版本 tag:git tag v 当前版本

3.执行线上发版脚本

npm run release:online

该脚本内部会做以下事情:

  1. 提交当前版本:git push
  2. 提交当前版本 tag:git push origin v 当前版本
  3. 根据 meta/packages.ts,发布 packages 里对应的包到 npm

如何扩展

假设我要给 monorepo 新增一个 vue3hooks 包:

  1. 在项目根目录的 packages 目录新建一个 vue3hooks 文件夹
  2. 在 packages/vue3hooks/ 新建一个 index.ts 入口文件
  3. 在 packages/vue3hooks/ 新建一个 package.json 文件,name 字段填你要发布到 npm 的包名,如@huangshuisheng/vue3hooks
  4. 在 packages/vue3hooks/ 新建一个 README.md 文件
  5. 在 meta/packages.ts 文件新增该包的信息
  6. 在项目根目录的 typedoc.config.json 文件添加 vue3hooks 的入口文件
  7. 发布的话和上面的发版一样,但需要注意的是:新增的包的初始版本号,是跟随当前根目录的 package.json 的版本的。

Generated using TypeDoc