我正在尝试获得2个现有的npm项目,这些项目目前在单独的回购协议中使用lerna在单个回购协议中工作。
项目A取决于项目B,它们都是打字稿项目。项目B公开了返回可观察值的函数,项目A使用了这些函数中的观察对象。
由于项目A的node_modules与项目B符号链接,因此项目A可以看到2个不同的rxjs文件夹。它自己安装在自己的node_modules文件夹中,而相同版本安装在Project B的node_modules中。 由于存在rxjs的这两个副本,因此出现类似以下错误:
类型import(“ package_A_node_modules / rxjs”)。可观察性不能分配给类型import(“ package_B_node_modules / rxjs”)。可观察性。
推荐的方法是将依赖项移至根项目。从理论上讲,这很棒,而且大多数情况下都可以工作。您没有任何重复的依赖项,但是有一些坏处:
数字2的一个示例是,当尝试运行有角度的aot构建时,它抱怨在@angular/cli
中找不到ProjectA/node_modules/angular
。 Angular cli依赖于rxjs,因此当我在子项目级别安装它时,我会得到另一个rxjs副本,并且问题再次出现。
并发存在类似的问题。需要将其安装在子项目中,并且再次取决于rxjs。
此刻我看不到任何解决方法,看来这种方法行不通。