`npm link` 始终将依赖项添加到根

问题描述 投票:0回答:1

我有一个单声道存储库,并且想要链接包含该库作为依赖项的包内的组件库。但是当我们控制这个库并进行更改时,我希望能够在本地测试它。

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

当我执行 find:

find -name '<library>'
时,我可以在
<target_package>
node_modules
目录以及 root
node_modules
目录中找到该库,这意味着
<target_package>
中的库将优先,但这是已发布的内容,而不是链接的内容。链接的存在于根中。

当我安装

node_modules
而不链接软件包时,该库仅存在于根目录
node_modules
中。

我尝试了几件事但没有成功。

如何临时覆盖工作区依赖项以使用

npm link
中的本地库?

编辑:

我在 webpack 配置中找到了一个临时解决方法,其中硬编码了用于此依赖项的路径。 然而,我认为这不是一个令人满意的解决方案。

javascript npm node-modules monorepo
1个回答
0
投票

我遇到了与您相同的问题,并发现它实际上是一个已记录的“功能”。

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

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

您可以尝试使用

npm link
的替代解决方案,例如
yalc

© www.soinside.com 2019 - 2024. All rights reserved.