NPM链接删除子依赖项



我正在尝试做一个NPM包的本地开发,并在依赖于它的包中测试它。我正在使用NPM(7.5.3),特别是npm link,但遇到了依赖链的问题。

子包有依赖项,当使用npm install "git+https://github.com/name/child_package"时,这些都被添加到父包的node_modules文件夹中。但当我npm link模块:

cd child_package
npm link
cd ../parent_package
npm link child_package

随着最后一个命令的运行(npm link child_package),child_package的所有依赖项都在parent_package的node_modules中被移除。NPM报告:

1秒内删除60个包,修改1个包,审核231个包

此时,由于缺少深度,父包中的所有编译都失败。它找到了child_package,它如预期的那样是符号链接的,但是在child_package中定义的依赖项是"gsap"已被删除

如果我使用npm install "git+https://github.com/name/child_package"重新安装它,它会将deps添加回父项目的node_modules文件夹。

尝试以下操作:

cd child_package
npm install

将子依赖项安装到子包目录

我个人讨厌npm link并且总是使用npm publish(使用1.0.0-preview这样的版本号。1为您的儿童包,并删除'-预览。当你完成时编号)

这是npm V7 +中引入的行为。

唯一合理的"变通方法"我发现是回到npm 6 (npm install -g npm@6)。

另一个"workaround"是npm install --no-save ../../my-local-module,但要反映对本地模块的更改,您将需要从node_modules中删除它并重新安装。有点蹩脚....

最新更新