Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Используйте эту задачу, чтобы предоставить npm учетные данные файлу .npmrc в репозитории для области сборки. Это позволяет npm, а также npm средствам выполнения задач, таким как gulp и Grunt, аутентифицироваться с помощью частных реестров.
Синтаксис
# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
workingFile: # string. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
Входные данные
workingFile
-
.npmrc для аутентификации
string. Обязательное.
Путь к файлу .npmrc , в котором указаны реестры, с которыми вы хотите работать. Выберите файл, а не папку, например /packages/mypackage.npmrc.
customEndpoint
-
Учетные данные для реестров за пределами этой организации или коллекции
string.
Разделенный запятыми список имен подключений службы npm для реестров за пределами этой организации или коллекции. Указанный .npmrc файл должен содержать записи реестра, соответствующие соединениям службы. Если вам нужны реестры только в этой организации или коллекции, оставьте это поле пустым. Учетные данные сборки используются автоматически.
Параметры управления задачами
Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.
Выходные переменные
Нет.
Замечания
Используйте эту задачу, чтобы предоставить npm учетные данные файлу .npmrc в репозитории для области сборки. Это позволяет npm, а также npm средствам выполнения задач, таким как gulp и Grunt, аутентифицироваться с помощью частных реестров.
- Как работает эта задача?
- Когда в конвейере следует выполнить эту задачу?
- У меня есть несколько npm проектов. Нужно ли мне запускать эту задачу для каждого файла .npmrc?
- Мой агент находится за веб-прокси. Будет
npmAuthenticateли настроенnpm/gulp/Gruntиспользование моего прокси? - Мой конвейер должен получить доступ к веб-каналу в другом проекте
Как работает эта задача?
Эта задача выполняет поиск записей реестра в указанном .npmrc файле, а затем добавляет данные аутентификации для обнаруженных реестров в конец файла. Для всех реестров в текущей организации или коллекции используются учетные данные сборки. Для реестров в другой организации или размещенных у третьей стороны, URI реестра будут сравниваться с URI подключений службы npm , указанных во входных customEndpoint данных, и будут использоваться соответствующие учетные данные. Файл .npmrc будет возвращен в исходное состояние в конце выполнения конвейера.
Когда в конвейере следует запустить эту задачу?
Эта задача должна быть выполнена npm перед использованием npm, или средства выполнения задач, для установки или отправки пакетов в репозиторий npm, прошедший проверку подлинности, например Azure Artifacts. Нет других требований к упорядочению.
У меня есть несколько npm проектов. Нужно ли мне запускать эту задачу для каждого файла .npmrc?
Эта задача будет добавлять данные аутентификации только в один .npmrc файл за раз. Если требуется аутентификация для нескольких .npmrc файлов, вы можете запустить задачу несколько раз, по одному разу для каждого .npmrc файла. В качестве альтернативы рассмотрите возможность создания .npmrc файла, в котором указаны все реестры, используемые вашими проектами, работающими npmAuthenticate на этом .npmrc файле, а затем установите переменную среды, чтобы обозначить этот .npmrc файл как файл конфигурации npm для каждого пользователя.
- task: npmAuthenticate@0
inputs:
workingFile: $(Agent.TempDirectory)/.npmrc
- script: echo "##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(Agent.TempDirectory)/.npmrc"
- script: npm ci
workingDirectory: project1
- script: npm ci
workingDirectory: project2
Мой агент находится за веб-прокси. Будет npmAuthenticate ли настроен npm/gulp/Grunt использование моего прокси?
Нет, не будут. Хотя эта задача сама по себе будет работать за веб-прокси, для использования которого настроен ваш агент, она не настраивает npm и npm не ставит задачи для использования прокси-сервера.
Для этого можно выполнить следующие действия:
Установите переменные
http_proxy/https_proxyсреды и, при необходимости,no_proxyнастройки прокси-сервера. Подробности смотрите в npm config . Обратите внимание, что это часто используемые переменные, которые могут использовать и другие не-инструментыnpm(например, curl).Добавьте настройки прокси в конфигурацию npm вручную, с помощью npm config set, или установив переменные среды с префиксом
NPM_CONFIG_.Это важно
npmСредства выполнения задач могут быть совместимы не со всеми методами настройки прокси, поддерживаемымиnpm.Указание прокси с помощью флага командной строки при вызове
npm.- script: npm ci --https-proxy $(agent.proxyurl)
Если прокси-сервер требует аутентификации, может потребоваться добавить дополнительный шаг сборки для создания URI прокси-сервера, прошедшего проверку подлинности.
- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)
Мой конвейер должен получить доступ к веб-каналу в другом проекте
Если конвейер выполняется в другом проекте, отличном от проекта, на котором размещен веб-канал, необходимо настроить другой проект, чтобы предоставить доступ на чтение и запись службе сборки. Дополнительные сведения см. в разрешениях пакета в Azure Pipelines.
Примеры
-
Восстановление
npmпакетов для проекта из реестра в организации -
Восстановление и публикация
npmпакетов за пределами организации - НПМРК
- npm
Восстановление npm пакетов для проекта из реестра в организации
Если в вашей организации используются только реестры Azure Artifacts, прошедшие проверку подлинности, необходимо указать только путь к .npmrc файлу npmAuthenticate для выполнения задачи.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
- script: npm ci
- script: npm publish
Восстановление и публикация npm пакетов за пределами организации
Если вы .npmrc содержите реестры Azure Artifacts из другой организации или используете сторонний репозиторий пакетов с проверкой подлинности, вам потребуется настроить подключения к службе npm и указать их во входных customEndpoint данных.
Реестры в организации Azure Artifacts также будут автоматически проходить проверку подлинности.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true
URL-адрес реестра, указывающий на веб-канал Azure Artifacts, может содержать или не содержать проект. URL-адрес веб-канала с областью действия проекта должен содержать проект, а URL-адрес веб-канала с областью действия организации не должен содержать проект. Дополнительные сведения о веб-каналах с областью действия проекта.
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection # Name of your service connection
- script: npm ci
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
OtherOrganizationNpmConnection и ThirdPartyRepositoryNpmConnection — это имена подключений к службе npm , которые были настроены и авторизованы для использования в конвейере и имеют URL-адреса, совпадающие с URL-адресами в указанном .npmrc файле.
Требования
| Требование | Описание |
|---|---|
| Типы конвейеров | YAML, классическая сборка, классический выпуск |
| Выполняется в | Агент, DeploymentGroup |
| Требования | Отсутствует |
| Возможности | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
| ограничения команд | Любое |
| переменные settable | Любое |
| Версия агента | 2.115.0 или более поздней версии |
| Категория задач | Пакет |