我有一个单声道存储库,并且想要链接包含该库作为依赖项的包内的组件库。但是当我们控制这个库并进行更改时,我希望能够在本地测试它。
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 配置中找到了一个临时解决方法,其中硬编码了用于此依赖项的路径。 然而,我认为这不是一个令人满意的解决方案。
我遇到了与您相同的问题,并发现它实际上是一个已记录的“功能”。
将链接相关包作为指定工作空间的依赖项。请注意,如果没有冲突的依赖项,它实际上可能链接到父项目的npm link <pkg> --workspace <name>
文件夹中。node_modules
https://docs.npmjs.com/cli/v7/commands/npm-link#workspace-usage
您可以尝试使用
npm link
的替代解决方案,例如yalc
。