我正在尝试做一个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
)时,parent_package
的node_modules中child_package
的所有依赖项都被删除。NPM报告:
删除60个 Package ,变更1个 Package ,并在1秒内审核231个 Package
此时父包中的所有编译都因为缺少deps而失败。它找到了child_package,它是符号链接的,但是“gsap”的child_package中定义的依赖关系现在已经被删除了。
如果我使用npm install "git+https://github.com/name/child_package"
重新安装它,它会将deps添加回父项目的node_modules文件夹中。
2条答案
按热度按时间zdwk9cvp1#
请尝试执行以下操作:
它将子依赖项安装到子包目录
我个人讨厌npm link,总是使用npm publish(使用版本号,如1.0.0-preview.1作为子包,完成后删除"-preview.Number")
9udxz4iz2#
这是一个behavior introduced in npm V7 +。
我找到的唯一合理的“变通方法”是回到npm 6(
npm install -g npm@6
)。另一个“变通方法”是
npm install --no-save ../../my-local-module
,但要反映对本地模块的更改,您需要将其从node_modules中删除并重新安装。有点蹩脚。