我有一个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
。