NodeJS npm链接删除子依赖项

lx0bsm1f  于 2022-12-29  发布在  Node.js
关注(0)|答案(2)|浏览(208)

我正在尝试做一个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文件夹中。

zdwk9cvp

zdwk9cvp1#

请尝试执行以下操作:

cd child_package
npm install

它将子依赖项安装到子包目录
我个人讨厌npm link,总是使用npm publish(使用版本号,如1.0.0-preview.1作为子包,完成后删除"-preview.Number")

9udxz4iz

9udxz4iz2#

这是一个behavior introduced in npm V7 +
我找到的唯一合理的“变通方法”是回到npm 6(npm install -g npm@6)。
另一个“变通方法”是npm install --no-save ../../my-local-module,但要反映对本地模块的更改,您需要将其从node_modules中删除并重新安装。有点蹩脚。

相关问题