Node.js 两个lerna monorepos之间的相互依赖性

Node.js 两个lerna monorepos之间的相互依赖性,node.js,npm,lerna,monorepo,Node.js,Npm,Lerna,Monorepo,我有两个单回购协议,我想同时开发。结构如下: Monorepo A package.json lerna.json packages/ componentA1 componentA2 Monorepo B package.json lerna.json packages/ componentB1 componentB2 以下是依赖项: 1) componentA2 depends on componentA1 2) componentB2 depends on com

我有两个单回购协议,我想同时开发。结构如下:

Monorepo A

package.json
lerna.json
packages/
   componentA1
   componentA2
Monorepo B

package.json
lerna.json
packages/
   componentB1
   componentB2
以下是依赖项:

1) componentA2 depends on componentA1
2) componentB2 depends on componentA1
3) monorepoB depends on componentA2
我正在使用

lerna exec -- npm link
两个monorepos上的命令。这使得一个monorepo内的一切都很好。 现在我做常规运动

npm link componentA1 componentA2 
在monorepoB中,遵循它们的依赖关系

虽然这对组件B2有效,但对组件B1无效。问题似乎是,如果链接的组件本身依赖于某个内部包,那么链接将不起作用

如果我在monorepoB中使用npm ls componentA2,我会得到

└── @monorepoA/componentA2@x.x.x  -> /Users/kbhit/Sources/xxx/ddl-admin/ddl-admin-sass/packages/sass invalid
但是到componentA1的链接是有效的(但它没有可传递的依赖项)


如何解决此问题?

npm link命令的输出是什么?您是否手动检查了正在创建的链接。哪些链接应该被创建,而实际上没有被创建?你的操作系统是什么?链接是相对的还是绝对的?npm link生成有效链接,无错误报告,将每个包从packages目录链接到node全局文件夹。它们都可以链接到另一个项目中,但是当我在一个具有可传递依赖项的项目上执行npm ls时,我会在该项目上得到“invalid”标记。我的OS i MacOS,链接是绝对的。