NPM 锁定文件/收缩包装将随机"dl"参数附加到"resolved" URL



我们公司使用Artifactory存储库来存储内部发布的包,并作为NPM注册表的代理。有时,lockfiles/hrinkwrap文件中的resolved字段与预期的一样,包含我们内部存储库的URL,但偶尔它们会显示为类似的内容(为清晰起见,添加了换行符(:

https://our.repository.com/artifactory/api/npm/some-repo/lodash/-/lodash-3.10.1.tgz
?dl=https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz

然后,从拉请求到拉请求,这些dl参数不断地振荡到存在或移除,这取决于哪个开发人员执行npm install,导致大量的拉请求&提交噪音。

我猜是Artifactory添加了这个dl参数,因为我在npm代码库中的代码搜索中没有看到它。

为什么会发生这种情况?我们可以禁用此行为吗?将此参数作为postshrinkwrap脚本的变通方法是否安全?

我认为问题的根源可能是缓存。

NPM缓存已下载的软件包,因此无需再次下载,必要时甚至可以离线重新安装。它还缓存解析后的值以供以后使用。如果已经解析并下载了相同版本的包,则无需再次获取并获取更新的下载/解析URL。

您可以使用以下命令手动清除此缓存。

npm cache clean --force

或者,可能是不同版本的NPM计算解析字段的方式不同(是否在Location标头之后(。然而,我认为缓存更可能是罪魁祸首。

相关内容

  • 没有找到相关文章

最新更新