AWS CodeArtifact publi c npm отсутствует версия пакета - PullRequest
2 голосов
/ 14 июля 2020

Я использую 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.

AWS docs говорит

  1. Если my-repo содержит запрошенную версию пакета, она возвращается клиенту.
  2. Если my-repo не содержит запрошенную версию пакета, CodeArtifact ищет ее в исходных репозиториях моего репо.
  3. Если версия пакета найдена, ссылка на нее копируется в 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 ( да, работает )
  • ...

Любая помощь приветствуется.

1 Ответ

1 голос
/ 26 июля 2020

Это известная проблема. До выпуска исправления загрузите пакет из другого источника и вручную опубликуйте sh его в репозитории CodeArtifact.

Изменить 18.08.2020

Пакеты, начинающиеся с имя "реестр" имел проблему с загрузкой, которая теперь решена, поэтому вышеуказанный обходной путь больше не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...