У нас есть частная артефакт JFrog (имя анонимно указано ниже), для которого npm настроен в корне проекта .npmrc -file:
registry=https://artifactory.jfrog.private.com:443/api/npm/npm-registry-virtual/
Поле resolved в файле package-lock.json, доступное черезGit между разработчиками постоянно меняется между запусками "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 --force не помогает.Я знаю, что npm install может автоматически разрешать конфликты слияния package-lock.json, но это не помогает с npm ci (поскольку все дело в том, чтобы не запустить npm install в среде CI).И, в любом случае, какая выгода от того, что виртуальный реестр npm разрешает пакеты внутренне (как я подозреваю, здесь происходит)?
Существует ли какая-то опция конфигурации, чтобы JFrog Artifactory не могла создавать такие типыизменения в URL разрешенных пакетов в виртуальном реестре npm?Или это может быть ошибка в npm?
Среда:
- npm 6.11.3
- JFrog Artifactory 6.10.6