git - 如何在 github 上构建 typescript 微服务存储库
问题描述
我正在设计一组微服务。我正在使用以下结构,其中每个项目都是它自己的存储库。
my-project-logger
my-project-numbers-service
进口:my-project-logger
类型定义 + 类对象(整个实现)my-project-alphabet-service
类型定义
my-project-alphabet-service
进口:my-project-logger
类型定义 + 类对象(整个实现)
my-project-client
进口:my-project-logger
类型定义my-project-numbers-service
类型定义my-project-alphabet-service
类型定义
然后在我的 package.json 中,我将类型定义不需要的所有依赖项保存到 devDependencies 中,因此在导入包时不会安装它们(仅在从 git 克隆时)。
例如,当my-project-logger
我只需要客户端上的类型定义但我需要服务的整个实现时,就会出现问题。我不确定如何使存储库具有两种不同的安装模式。一个只安装类型定义,另一个安装整个实现。无法使用 npm(用于发布)也使事情变得更加困难。
我也尝试过使用 lerna 的 monorepo 方法,但这使得使用 docker 独立部署微服务效率极低,因为您必须手动指定 dockerfile 中的每个本地依赖项(因为我不能使用 npm 网站进行发布)。
我尝试的最后一种方法是创建一个my-project-types
存储库并在其中为每个存储库设置类型,但这很烦人,因为每次更改类型时都必须为依赖它的每个服务重新提取类型存储库。
解决方案
我认为解决这个问题的正确方法是发布多个包。您可以仅使用类型定义发布单独的包。
推荐阅读
- django - Django ElasticSearch Celery 任务模型调用返回“str”对象不可调用
- amazon-web-services - 使用 Cloudformation 配置 Glacier Deep Archive 转换规则
- windows - Vagrant ssh 进入 Windows 10 来宾:PATH 不包括使用 Chocolatey 配置的工具
- cql - 在普通(非聚类)列上获得与某些标准匹配的前 N 行的最有效方法
- c# - 如何在 DataGrid 中显示一定数量的行?(C#/WPF)
- python - 聚类数据子组中的行
- sql-server - 在 SQL Server 的 ForXMLPath 查询中包含文本
- angular - Angular Reactive Forms 从 Type 生成表单控件
- curl - curl 的 RESTconf 操作
- python - 使用 Fast.AI 查找学习率/训练时出现 BrokenPipeError