8

对于我的 Angular 4.x 应用程序(App),我编写了一个当前不兼容 AoT 的库(例如“Lib”)。

App 和 Lib 都依赖于第 3 方库(例如“X”)。当我在 App 中使用“<strong>npm link”开发 Lib 时,由于 X 现在在 App/node_modules 和 Lib/node_modules 中,有些事情停止工作,并且在运行时似乎有来自 X 的多个提供程序实例。当我从 Lib/node_modules 中删除 X 一切正常。我怀疑这是提供者的一般限制,与 X 无关,但在我的情况下,X 实际上是 ngx-translate。

我发现的“最干净”的解决方法是只为 App 而不是 Lib 运行“npm install”。这样,大多数依赖项(包括 X)仅存在于 App node_modules 中,并且应用程序运行良好。但是,这会在开发 Lib 时导致 IDE 问题:1)如果我在 Lib 的项目上工作,它缺少依赖项并且没有智能感知(例如,它不构建)。2)如果我从 App 的项目(直接在 node_modules\Lib 上)开发 Lib,它没有正确的版本控制集成(例如,我无法签出)。

非常感谢!

4

0 回答 0