使用npm link关联多个本地包时先关联的包链接失效如何解决
npm link 多包关联场景前序链接失效问题解决
问题复现条件
- 存在两个待关联本地包A、B,且B本身已关联了A
- 项目先执行
npm update更新过部分依赖
异常表现
- 单独执行
npm link A或npm link B,均可正常完成关联 - 按顺序先后执行两个link命令时,后执行的命令关联成功,但先完成的关联自动消失,全程无报错信息,执行返回内容如下:
added 5 packages, removed 5 packages, changed 2 packages, and audited 121 packages in 5s
3 packages are looking for funding
运行npm fund查看详情
原因说明
npm 6及以上版本的依赖树校验逻辑下,增量执行link命令时,若新关联的包依赖了已关联的本地包,npm会重写依赖树覆盖前序的软链接配置,导致先关联的包link失效,该问题在执行npm update变更依赖锁定规则后更容易触发。
解决方法
无需分开执行多次link命令,一次性将所有需要关联的本地包传入指令即可:
npm link A B
一次性传入多包名时,npm会统一处理所有软链接映射,同步校验依赖树,不会出现后执行操作覆盖前序关联的问题。
内容的提问来源于stack exchange,提问作者Devoev
相关产品推荐
相关产品推荐

