Я использую AWS CodeArtifact для частного реестра npm. У проекта множество зависимостей, и все они разрешены правильно. Мы успешно публикуем пакеты в нашем реестре и используем их в качестве зависимостей в других проектах, все работает, как ожидалось, прежде чем было решено ввести semantic-release
и вот что произошло:
$ npm i semantic-release
npm ERR! code ETARGET
npm ERR! notarget No matching version found for registry-auth-token@^3.0.1.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'package-json'
npm ERR! notarget
Это происходит только при использовании частного реестра. И если мы проверим как исходящие, так и исходящие репозитории в CodeArtifact - для этого пакета доступна / кешируется только одна версия ( последняя ), тогда как publi c npm содержит registry-auth-token@^3.0.1
и эту версию можно установить с помощью реестра publi c npmjs.
- Если
my-repo
содержит запрошенную версию пакета, она возвращается клиенту. - Если
my-repo
не содержит запрошенную версию пакета, CodeArtifact ищет ее в исходных репозиториях моего репо. - Если версия пакета найдена, ссылка на нее копируется в
my-repo
, а версия пакета возвращается клиенту.
Согласно этим пунктам, если версия существует в publi c npm он будет перенесен в нисходящий поток и кэширован, и он действительно работает с другими случайными пакетами, которые я пытался установить отсутствующие / старые / неиспользуемые версии, но registry-auth-token
и registry-url
кэшируются только с последние версии, и любая попытка установить другую версию заканчивается с
error notarget No matching version found for registry-auth-token@^3.0.1.
Почему CodeArtifact не может разрешить определенные версии пакетов и может разрешить другие? Это проблема с CodeArtifact или я что-то делаю. неправильно?
Я уже перепробовал все известные ( мне ) способы решения таких проблем:
npm ci
- Удалено
package-lock.json
, node_modules
+ npm i
npm cache clean -f
npm -d ping
( да, работает ) - ...
Любая помощь приветствуется.