Задаче PowerShell для конвейера Azure не удается загрузить частные npm пакеты - PullRequest
1 голос
/ 30 марта 2020

У нас есть задача PowerShell ("2. *"), которая запускает npm install с try catch, чтобы включить повтор при сбое. Однако npm установка завершается неудачно при запуске из этой задачи, поскольку он не может получить доступ к закрытому каналу с пользовательскими пакетами npm.

npm ERR! code E401
npm ERR! Unable to authenticate, need: Bearer authorization_uri=https://login.windows.net/d2...b7, Basic realm="https://pkgsprodcus1.pkgs.visualstudio.com/", TFS-Federated

Задание имеет доступ к токену OAuth с помощью включенных сценариев, но это не Кажется, работает на задачу PS. enter image description here

Что мы можем сделать для запуска задачи npm install в PS для установки без E401

1 Ответ

0 голосов
/ 31 марта 2020

Боюсь, что $(System.Accesstoken) здесь недоступно, пока вы npm install нацелились на azure реестр каналов devops.

Мы предоставляем одну задачу с именем npm Аутентификация . Почему бы напрямую не использовать эту задачу для авторизации перед запуском npm install в powershell? Другими словами, поместите авторизацию в одну отдельную задачу, просто выполните npm install в сценарии powershell:

enter image description here

Просто настройте один .npmrc, который одновременно уровень пути с package.json, добавив следующий скрипт:

registry=https://pkgs.dev.azure.com/{org}/{project name}/_packaging/{feed name}/npm/registry/
always-auth=true
...