monorepo中的' npm link '将依赖项总是添加到根目录



我有一个mono repo,想链接一个组件库到一个包里面,这个包包含这个库作为一个依赖。但是当我们控制这个库并进行更改时,我希望能够在本地测试它。

cd <library_path>
npm link
cd <monorepo_path>
npm link --workspace <target_package> <library> 

当我执行find:find -name '<library>'时,我可以在<target_package>node_modules目录以及根node_modules目录中找到库,这意味着<target_package>中的库将优先考虑,但这是发布的库,而不是链接的库。链接的在根目录

当我安装node_modules而不链接包时,库只存在于根node_modules中。

我试了好几次都没有成功。

我如何临时覆盖工作空间依赖以使用npm link的本地库?

编辑:

我在我们的webpack配置中找到了一个临时的解决方案,硬编码了该依赖项使用的路径。然而,在我看来,这并不是一个令人满意的解决方案。

我遇到了和你一样的问题,并且发现它实际上是一个文档化的"特性"。

npm link <pkg> --workspace <name>将把相关包链接为指定工作区的依赖项。请注意,如果没有冲突的依赖项,它实际上可能被链接到父项目的node_modules文件夹中。

https://docs.npmjs.com/cli/v7/commands/npm-link workspace-usage

您可以尝试使用npm link的替代解决方案,例如yalc

最新更新