Я пытаюсь установить пакет из частного реестра Azure DevOps с помощью Yarn. Я настроил свой файл .yarnrc.yml следующим образом:
npmScopes:
mycompany:
npmRegistryServer: https://pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/
npmAlwaysAuth: true
npmAuthToken: <my-auth-token>
Когда я пытаюсь добавить пакет с помощью:
yarn add @mycompany/mypackage
Я получаю следующие ошибки:
➤ YN0027: @mycompany/mypackage@unknown can't be resolved to a satisfying range
➤ YN0041: Invalid authentication (as an unknown user)
➤ Errors happened when preparing the environment required to run this command.
Установка отлично работает с npm, используя следующую конфигурацию .npmrc:
registry=https://pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/
always-auth=true
; begin auth token
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/:username=mycompany
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/:_password=[ACCESS_TOKEN]
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/:email=[EMAIL]
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/:username=mycompany
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/:_password=[ACCESS_TOKEN]
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/:email=[EMAIL]
; end auth token
пряжа версия 3.6.4 НПМ версия 10.8.1 версия узла 18.20.3
Проверка имени пакета: я проверил, что пакет @mycompany/mypackage существует в реестре.
Проверен токен аутентификации: подтверждено, что npmAuthToken правильный и имеет необходимые разрешения.
Ручная настройка: попробовал настроить реестр и токен аутентификации вручную с помощью следующих команд:
Я протестировал тот же образец файла .yarnrc.yml
и воспроизвел ту же проблему.
Чтобы решить эту проблему, вы можете использовать npmAuthIdent
в .yarnrc.yml
файле.
Вот пример:
npmScopes:
mycompany:
npmRegistryServer: https://pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/
npmAlwaysAuth: true
npmAuthIdent: ANY_USERNAME:MY_TOKEN_AS_BASE64
Примечание. Вам необходимо преобразовать формат username:PAT
в формат base64 и ввести его в поле npmAuthIdent
.
Для получения более подробной информации вы можете обратиться к этому билету GitHub: Аутентификация артефактов Azure
Это сработало для меня. Большое спасибо. Я использовал
echo -n 'username:PAT' | base64
, чтобы получить правильный ключ