🚀 基于 vue3 并使用 monorepo 实现一些简单的组件
Important
该库旨在用于学习 monorepo,并且是一项正在进行的工作。 预计未来版本中会有重大变化。
📝 document
本项目使用changeset
进行管理变更集和 npm
的发布
-
pnpm build
进行打包,如果只是修改了 play 和 docs 包,则可跳过改命令,因为 play 和 docs 的 package.json 中的 private 为 true,并且也不需要发布出去
-
pnpm changeset
生成总体变更集信息,
排除了 play 和 docs 包
-
pnpm vp
根据这次变更集为对应的模块补充
CHANGELOG.md
,并更新 version 版本 -
git一系列操作
推送到 github 上,至少要提交
-
pnpm release
发布到 npm 上,并创建几个(具体就是几个修改的对应要发布到 npm 上的包)git tag,所以
在 release 前一定要先 commit
,否则 tag 就会和 package 的 version 对不上,如果只是修改了 play 和 docs 包,则可跳过改命令,此外在发布时 workspace:*之类的 会进行自动转换
可以进行多次的 pnpm changeset,当觉得可以发版的时候,再进行 pnpm vp,这样这一个版本的内容就会比较“丰富”,release 也比较好看
-
要是在 play 包进行测试的话,每次更新任意一个库的代码,都要进行打包(麻烦,但暂时没有找到其他方案,除非不打包,但不打包 npm 就要发布源码,徒增下载体积)
通过在 play 设置
alias
解决,这样 play 中的代码就是源码了,而非打包后的产物 -
docs
-
playground
使用
@vue/repl
集成到docs-playground
中 -
eslint、git hooks 等
个人项目暂不考虑,目前只是简单的使用了 prettier 并结合 vscode 的 prettier 插件,文件自动保存进行 format
-
GitHub Actions publish to npm
通过 GitHub Actions,进行自动化发布(目前只能说能用,待优化整个流程,比如有一个单独的开发分支,要不触发得很频繁)
具体流程
-
pnpm changeset
(详情见手动发布流程) -
pnpm vp
(详情见手动发布流程) -
git push orgin main
:只有 push 到 main 分支才会触发 github action,上面的两个命令只是为了变更集的收集,当然如果要发布到 npm 上,那么就必须修改版本,也就是 pnpm vp ( changeset version )
-