angular - 在 Angular 应用程序之间共享代码

标签 angular angular-cli code-sharing

<分区>

我有一个现有的 Durandal 应用程序,实际上是两个相互纠缠在一起的应用程序。

我想用 Angular 重写应用程序,并希望区分应用程序的共享通用代码。

我估计大约 80% 的代码可以共享。

如果可能的话,我想使用 angular-cli。但我真的在寻找关于如何在 Angular 应用程序之间共享代码的最佳实践。

最佳答案

看看Minko's blog post on creating Angular Libraries .这是因为您希望将 80% 的可重用代码创建为一个或多个可共享的内部库。然后,您可以将它们发布到内部 NPM 存储库。

然后您可以简单地使用 angular-cli 来创建使用这些库的应用程序。

Minko 在上面链接的博客中谈到了两个要点。这些确保您的库与 Angular 的 AoT 兼容并且它们是可摇树优化的。

更新 20202 年 11 月 2 日

另一种选择是使用 monorepo 模式,您可以将您的库和应用程序放在同一个存储库中,从而使代码重用更加容易。

Monorepo 和 microrepo 都有优点和缺点。这两种模式都需要组织的支持和 CICD 和/或依赖管理的工具。

如果您正在考虑 monorepo,请查看 Nrwl Nx工具。

关于angular - 在 Angular 应用程序之间共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096032/

相关文章:

javascript - Angular 4 + ng2-datetime jQuery 问题

Angular Lazyload 路由生成额外的 block 文件,前缀为 default~pages

c# - 在 C# 和 C++ 之间共享源文件

angular - 组件是两个模块 :AppRoutingModule and AppModule 声明的一部分

javascript - 如何在 html 元素属性中使用 Angular 2 外推?

angular - 哪个 OpenAPI 客户端 sdk 用于 loopback4 和 angular?

javascript - Angular 'unexpected pipe imported by module' 错误

angular - 将 Angular 11 应用程序升级到 Angular 12 时遇到问题

aws-lambda - 如何在 Netlify lambda 函数之间共享代码

c# - 类型 '...' 存在于 'Util.dll"和 'Util (Silverlight).dll' 中