随着自己在独立开发,独自开发的方向上一路狂奔,很多以前在公司的开发习惯也慢慢地变得更加随性自然。
本文分享一下,我的项目组织策略和代码管理方案,嗯…其实也什么特别的,大道至简吧。

我所有的产品,网站,文章,等等,都放在一个 codes 文件夹里,也就是说,这个文件夹下,就是我的全部代码资产。
其下,又按照不用的职责类型,分为:
vscodesVSCode 扩展产品。utoolsUtools 插件产品。sites我的个人网站和产品官网。share所有项目共用的代码。offices我的管理后台,用户后台,网页产品等。notes我的笔记记录等。

这么多目录和项目,分开管理是最好的,同时也要有所联系,那么 monorepo(单仓库多项目) 方案是最合适的。
由于我已经 All in Bun,所以管理 monorepo 中 workspaces 的配置就放在了 package.json 文件的对应字段下。
每个子包,分而治之,可以单独使用,互不影响,又能通过 worksapce: 协议互相引用,很是方便。

也是由于这个原因,我特意创建了一个 share 共享目录,比如一些公共的打包配置,统计脚本,公共函数,甚至 vue 组件,都能放到这里,被所有项目共用。

如果搜索 "dependencies" 字符,会发现只有 2 个结果,疑问来了,这么多项目,怎么只有 2 个 package.json 文件有 "dependencies" 依赖字段呢?

因为除了 接口项目 需要上传到服务器进行依赖的安装和部署,其他项目都是前端项目,本地安装编译后,直接上传编译后的结果就行了。

所以我把所有依赖,全部放到了根目录下的 package.json 中,这样更新反而更方便,一劳永逸。
这就是我的项目和代码管理方法,简单好用,大道至简。
正所谓,穷则变,变则通,通则久。
不固守成规,根据不同的环境,不同的状态,选择最合适的方案,应该也是一个技术人成长的标志吧。
