我们公司使用Artifactory存储库来存储内部发布的软件包,并作为NPM注册中心的代理。有时,lockfiles / shrinkwrap文件中的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
来出现或删除,从而导致很多拉取请求和提交噪音。 / p>
我猜是在Artifactory中添加了此dl
参数,因为在npm代码库的代码搜索中看不到它。
为什么会这样?我们可以禁用此行为吗?将这个参数剥离为postshrinkwrap
脚本变通办法是否安全?
答案 0 :(得分:0)
我认为问题的根源可能是缓存。
NPM缓存已下载的程序包,因此不必再次下载它们,并且必要时甚至可以脱机重新安装它们。它还缓存解析后的值以供以后使用。如果已经解析并下载了相同版本的软件包,则无需再次获取它并获取更新的下载/解析URL。
您可以使用以下命令手动清除此缓存。
urls.py
或者,可能是NPM的不同版本计算解析字段的方式不同(是否遵循Location标头)。但是,我认为更可能归咎于缓存。