首页 > 解决方案 > 如何在 github 上构建 typescript 微服务存储库

问题描述

我正在设计一组微服务。我正在使用以下结构,其中每个项目都是它自己的存储库。

然后在我的 package.json 中,我将类型定义不需要的所有依赖项保存到 devDependencies 中,因此在导入包时不会安装它们(仅在从 git 克隆时)。

例如,当my-project-logger我只需要客户端上的类型定义但我需要服务的整个实现时,就会出现问题。我不确定如何使存储库具有两种不同的安装模式。一个只安装类型定义,另一个安装整个实现。无法使用 npm(用于发布)也使事情变得更加困难。

我也尝试过使用 lerna 的 monorepo 方法,但这使得使用 docker 独立部署微服务效率极低,因为您必须手动指定 dockerfile 中的每个本地依赖项(因为我不能使用 npm 网站进行发布)。

我尝试的最后一种方法是创建一个my-project-types存储库并在其中为每个存储库设置类型,但这很烦人,因为每次更改类型时都必须为依赖它的每个服务重新提取类型存储库。

标签: gittypescriptnpm

解决方案


我认为解决这个问题的正确方法是发布多个包。您可以仅使用类型定义发布单独的包。


推荐阅读