gpt4 book ai didi

git - Angular 4+ 帮助 : Sharing Services across projects

转载 作者:太空狗 更新时间:2023-10-29 14:42:55 24 4
gpt4 key购买 nike

我是 Angular 4+ 的新手。我们现在有一个 angular 4+ 应用程序正在生产中。在现在需要另一个应用程序的地方,它运行得很好。

新应用中将需要一些原始应用,主要是在服务领域(例如日志记录、身份验证、配置)。

我不确定如何将这些服务分解为一个更跨项目的可共享实体。是否有将共享服务纳入 NPM 模块的良好指南?这是不是太过分了,我应该做类似的事情,比如 git submodules 吗?我还没有找到关于这个主题的好资源。

最佳答案

这是一个很好的问题,它更多地是关于一种构建项目的方式。您已经在回答中提到了两种可能的解决方案。

解决方案 #1:NPM 库

将系统的可重用组件分离到库中是很常见的做法。特别是对于企业系统,让助手库跨项目重用是一种方便的方法。 (可以托管在私有(private) npm 或直接托管在私有(private) git 上)。

附言基本上 git submodules 与将您的服务托管为库并没有什么不同。只要你正在通过 git 链接到另一个项目,你就需要安装和构建它。在 package.json 文件中保持依赖性的同时,您正在做的事情。

解决方案 #2:Monorepo

此外,流行的解决方案因 Google、Facebook 等大公司而出名。将您的所有项目保存在单个存储库中,因此您绝对可以跨项目重用您的任何服务/组件。

结论

做出决定应取决于您要共享的代码量及其复杂性。

从你的问题中,我了解到你只需要小块来构建你的项目。我建议构建通用的基于组件的库。因此,您可以从中导入您项目中需要的组件和服务。这种方法的缺点是测试。更新库版本后,您需要确保之后没有任何问题。

Monorepo 可以在每次您需要更改某些核心服务时交付快速安全的代码方面为您提供一些优势。如果您的所有代码都在一个存储库中,那么在一个地方对所有项目进行更改和运行测试显然会更容易。但在这种情况下,项目的灵 active 和发布过程可能会成为一个大难题。

关于git - Angular 4+ 帮助 : Sharing Services across projects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47024388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com