我有一个现有的 Durandal 应用程序,实际上是两个相互纠缠的应用程序。
我想用 Angular 重写应用程序,并希望区分应用程序的共享通用代码。
我估计大约 80% 的代码可以共享。
如果可能的话,我想使用角度 cli。但我真的在寻找如何在 Angular 应用程序之间共享代码的最佳实践。
看看 Minko 关于创建 Angular 库的博客文章。这是因为您希望将 80% 的可重用代码创建为一个或多个可共享的内部库。然后,您可以将这些内容发布到内部 NPM 存储库。
然后,您可以简单地使用angular-cli来创建使用这些库的应用程序。
Minko在上面链接的博客中谈到了两个要点。这些是确保您的库与 Angular 的 AoT 兼容,并且它们是可摇树的。
更新 2-Nov-20202
另一种选择是使用 monorepo 模式,在该模式下,您将库和应用程序放在同一个存储库中,从而使代码重用更容易。
Monorepo和microrepo都有优点和缺点。这两种模式都需要组织的支持和CICD和/或依赖管理的工具。
如果您正在考虑 monorepo,请查看 Nrwl Nx 工具。