У меня есть файл .npmrc с:
registy=http://artifacts.sample.com/artifactory/api/npm/
package-lock.json содержит разрешенное поле для зависимостей, которое выглядит примерно так:
"dependencies": {
"acorn": {
"version": "5.7.3",
"resolved": "http://artifacts.sample.com/artifactory/api/npm/acorn/-/acorn-5.7.3.tgz",
"integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
"dev": true
}
Теперь, когда я делаю npmпри установке он изменяет разрешенное поле package-lock.json так, чтобы оно указывало на локальный артефакт вместо того, который указан в .npmrc, например:
"dependencies": {
"acorn": {
"version": "5.7.3",
"resolved": "http://localrepo.sample.com/artifactory/api/npm/acorn/-/acorn-5.7.3.tgz",
"integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
"dev": true
}
У нас есть локализованный код, и это даст доступ кому-то живомув другой части мира, где их URL-адреса артефактов указывают куда-то еще, или он просто изменит файл package-lock.json, чтобы вместо этого они указывали на их локальный URL, и у нас всегда будет изменяющийся файл package-lock.json.
У меня тоже были проблемы с "dev" и "целостностью", но они были исправлены с помощью https://github.com/npm/npm/issues/16938#issuecomment-339863980
Я использую последние версии node и npm.
node -v
v10.15.3
npm -v
6.9.0
Есть ли в любом случае, мы можем избежать этого?