只是想知道,如果有一个具有循环/循环依赖的包,npm 会处理它吗?如何?我用谷歌搜索但找不到非常有用的结果。
我在这里可以想到两种问题:
-
相同版本的循环依赖:A->B
, B->C
, C->A
npm 是否像这样构建依赖关系? (只是我的猜测,没有找到任何循环依赖来实际测试)
[email protected] /cdn-cgi/l/email-protection
└─┬ [email protected] /cdn-cgi/l/email-protection
└─┬ [email protected] /cdn-cgi/l/email-protection
└── [email protected] /cdn-cgi/l/email-protection (deduped)
不同版本的循环依赖:[email protected] /cdn-cgi/l/email-protection>B
, B->C
, C->A@^1.0.0
,我什至无法猜测如果这样的事情存在会发生什么?
我强烈反对有循环包依赖性。不仅仅是 npm 是否可以处理这个问题,还有围绕依赖项可能拥有的所有工具。例如,我遇到了一些由循环包依赖项引起的奇怪的 Typescript 构建错误,npm 似乎没问题。也许它没有注意到单声道存储库中的循环,但 Typescript 失败了,并且没有明确的错误说“由于循环依赖而失败”
根据经验,我会说“循环依赖”往往是一个令人讨厌的问题。这不是非黑即白的情况,它往往就像“未定义的行为”,有时还好,有时不太好。
我无法告诉你 npm 是否明确支持循环依赖,但我可以告诉你更重要的是考虑工具是否可以管理循环 npm 包。总的来说,假设不是更安全
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)