gpt4 book ai didi

npm "resolved"- package-lock.json 中的字段随着 JFrog Artifactory 不断变化

转载 作者:行者123 更新时间:2023-12-03 07:34:45 26 4
gpt4 key购买 nike

我们有一个私有(private)的 JFrog Artifactory (名称在下面匿名),它在项目根 .npmrc -file 中配置了 npm:

registry=https://artifactory.jfrog.private.com:443/api/npm/npm-registry-virtual/

开发人员之间通过 Git 共享的 package-lock.json 文件中的已解析字段在“npm install”运行之间不断变化,而 package.json 没有任何更改。

有时 dl 查询参数(指向完全相同的 URL)被添加到解析的 URL:
- "resolved": "https://artifactory.jfrog.private.com:443/api/npm/npm-registry-virtual/@sailshq/lodash/-/lodash-3.10.3.tgz",
+ "resolved": "https://artifactory.jfrog.private.com:443/api/npm/npm-registry-virtual/@sailshq/lodash/-/lodash-3.10.3.tgz?dl=https://artifactory.jfrog.private.com/@sailshq/lodash/-/lodash-3.10.3.tgz",

有时查询参数指向 npmjs.org 注册表:
 - "resolved": "https://artifactory.jfrog.private.com:443/api/npm/npm-registry-virtual/aproba/-/aproba-1.2.0.tgz",
- "resolved": "https://artifactory.jfrog.private.com:443/api/npm/npm-registry-virtual/aproba/-/aproba-1.2.0.tgz?dl=https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",

有时该字段直接指向 npmjs.org 存储库:
- "resolved": "https://artifactory.jfrog.private.com:443/api/npm/npm-registry-virtual/acorn/-/acorn-3.3.0.tgz",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",

这些变化中的任何一个也可能朝着相反的方向发展。

这真的很烦人,因为这意味着我们不断地在 package-lock.json 中进行无意义的更改,这会导致合并冲突并经常阻止 npm ci 正确执行。 npm cache clean --force 似乎没有帮助。我知道 npm install 可以自动解决 package-lock.json 合并冲突,但这对 npm ci 没有帮助(因为重点是 而不是 在 CI 环境中运行 npm install)。而且,无论如何,看看虚拟 npm 注册表如何在内部解析包有什么好处(我怀疑这里正在发生)?

是否有某种配置选项可以防止 JFrog Artifactory 对虚拟 npm 注册表中已解析的包 URL 进行此类更改?或者它可能是 npm 中的错误?

环境:
  • npm 6.11.3
  • JFrog Artifactory 6.10.6
  • 最佳答案

    我不知道为什么会出现这些备用 URL 或如何让它们停止。但是您可以通过使用 npm-merge-driver 为您的开发人员减少(甚至可能消除!)合并冲突的痛苦。 .它是由一位在 npm cli 团队工作多年的开发人员编写的,其唯一目的是自动化 package-lock.json合并冲突。

    关于npm "resolved"- package-lock.json 中的字段随着 JFrog Artifactory 不断变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030867/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com