npm "resolved" -поля в package-lock.json постоянно меняются с помощью артефакта JFrog - PullRequest
1 голос
/ 20 сентября 2019

У нас есть частная артефакт 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
...