Skip to content

前言

由于搞了一些开源工具,需要一个统一的文档管理,入了vitepress写文档的坑。目前的开源内容有一系列的config文件,集中在@xunserver/config 这个仓库中,通过pnpm管理,每个包都有自己的reameme.md 和changelog.md。 还有个仓库存放了icon,style和vui的代码,目前有下面的痛点。

  1. doc是一个单独仓库只存放文档,文档中还需要引入各个包的readme.md已经changelog。
  2. 除了changelog外,对vui的还需要进行组件的引入,对于style还需要样式的引入。
  3. 目前的doc和vui存放在一起通过pnpm的方式引入。

git submodule

git submodule 相当于将某个仓库的某个commit作为模块添加项目中,而且对项目透明,项目本身不能去修改。

git submodule add

添加submodule到项目中,执行后git 会下载子模块到项目中。同时生成.gitmodule文件来记录关系

git submodule init

根据.gitmodule文件下载子项目,通常用来父项目第一次拉取后

git submodule deinit

清空子项目代码但是不删除.gitmodule中的关系

git submodule update

根据.gitmodule 中记录的子项目的commit下载子项目的代码,通过git submodule update --remote 总是根据远端的来下载。通常情况下如果子项目更新后,父项目能够感知到子项目的最新commit,并且会生成一个差异文件,如果差异文件被提交。另一个合作伙伴需要根据最新的commit的下载代码

git submodule foreach

批量操作子项目,git submodule foreach "echo $name"

git rm path

删除子项目

解决办法

doc文档有两种情况是需要更新的

  1. 相关的readme或者组件变更,doc本身无需变更。这种情况doc设置一个每天自动重新构建即可。
  2. doc本身需要变更,变更部分内容。这种需要doc发布后触发重新构建
  3. 手动更新

doc文档

doc文档使用的vitepress, 可以在文档中直接引入vue3代码,同时还支持markdown引用。这两个可以引入其他的包的说明文档和vui组件的文档。