对于我的Angular 4.x应用程序(App),我写了一个库(例如'Lib'),它目前不兼容AoT。
App和Lib都依赖于第三方库(例如'X')。 当我使用“ npm link ”在App中开发Lib时,有些东西停止工作,因为X现在在App / node_modules和Lib / node_modules中,并且在运行时似乎有多个提供者实例来自X。 当我从Lib / node_modules中删除X时,一切正常。 我怀疑这是提供者的一般限制,并不特别与X有关,但在我的情况下,X实际上是ngx-translate。
我发现'最干净'的解决方法是只运行App的“npm install”而不是Lib。这样,大多数依赖项(包括X)仅存在于App node_modules中,并且应用程序正常工作。 但是,这会在开发Lib时导致IDE问题: 1)如果我在Lib的项目上工作,它缺少依赖项,并且没有例如智能感知(此外它不构建)。 2)如果我从App的项目开发Lib(直接在node_modules \ Lib上),它没有正确的版本控制集成(所以我不能签出例子)。
非常感谢!