npmAuthenticate@0 - npm kimlik doğrulaması (görev çalıştırıcıları için) v0 görevi

Derlemenin kapsamı için deponuzdaki bir npm dosyasına .npmrc kimlik bilgileri sağlamak için bu görevi kullanın. Bu, npmyanı sıra gulp ve Grunt gibi npm görev çalıştırıcılarının özel kayıt defterleriyle kimlik doğrulamasına olanak tanır.

Sözdizimi

# 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:
    #azureDevOpsServiceConnection: # string. Alias: workloadIdentityServiceConnection. 'Azure DevOps' Service Connection. 
    #feedUrl: # string. Azure Artifacts URL. 
    workingFile: # string. Required. .npmrc file to authenticate. 
    #customEndpoint: # string. Credentials for registries outside this organization/collection.
# 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.

Girişler

azureDevOpsServiceConnection - 'Azure DevOps' Servis Bağlantısı
Giriş diğer adı: workloadIdentityServiceConnection. string.

Eğer bu ayarlanmışsa, feedUrl gereklidir. Dış organizasyonlar/koleksiyon ve özel uç noktalar için Servis Bağlantıları uyumlu değildir.


feedUrl - Azure Artifacts URL
string.

Eğer bu ayarlanmışsa, workloadIdentityServiceConnection gereklidir. Uyumlu değil customEndpoint. Feed URL'si kayıt formatında npm olmalıdır: https://pkgs.dev.azure.com/{ORG_NAME}/{PROJECT}/_packaging/{FEED_NAME}/npm/registry/.


kimliğini doğrulamak için .npmrc dosyasını workingFile -
string. Gerekli.

Çalışmak istediğiniz kayıt defterlerini belirten .npmrc dosyasının yolu. /packages/mypackage.npmrcgibi klasörü değil, dosyayı seçin.


Bu kuruluş/koleksiyondışındaki kayıt defterleri için customEndpoint - Kimlik Bilgileri
string.

Bu kuruluş veya koleksiyon dışındaki kayıt defterleri için npm hizmet bağlantısı adlarının virgülle ayrılmış listesi. Belirtilen .npmrc dosyası, hizmet bağlantılarına karşılık gelen kayıt defteri girdileri içermelidir. Yalnızca bu kuruluşta veya koleksiyonda kayıt defterlerine ihtiyacınız varsa, bunu boş bırakın. Derlemenin kimlik bilgileri otomatik olarak kullanılır.


Görev denetimi seçenekleri

Tüm görevlerin, görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz. Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Yok.

Açıklamalar

Derlemenin kapsamı için deponuzdaki bir npm dosyasına .npmrc kimlik bilgileri sağlamak için bu görevi kullanın. Bu, npmyanı sıra gulp ve Grunt gibi npm görev çalıştırıcılarının özel kayıt defterleriyle kimlik doğrulamasına olanak tanır.

Bu görev nasıl çalışır?

Bu görev, belirtilen .npmrc dosyasında kayıt defteri girdilerini arar ve sonra bulunan kayıt defterleri için kimlik doğrulama ayrıntılarını dosyanın sonuna ekler. Geçerli kuruluş/koleksiyondaki tüm kayıt defterleri için derlemenin kimlik bilgileri kullanılır. Farklı bir kuruluştaki veya üçüncü taraf tarafından barındırılan kayıt defterleri için kayıt defteri URI'leri, girişi tarafından belirtilen customEndpoint npm hizmet bağlantılarının URI'leriyle karşılaştırılır ve ilgili kimlik bilgileri kullanılır. .npmrc dosyası, işlem hattı yürütmesinin sonunda özgün durumuna geri döndürülür.

İşlem hattımda ne zaman bu görevi çalıştırmalıyım?

Bu görev, npm veya npm görev koşucusu kullanıp paketleri doğrulamalı bir npm deposuna, örneğin Azure Artifacts gibi yüklemek veya göndermek için çalıştırmadan önce çalıştırılmalıdır. Başka sipariş gereksinimleri yoktur.

Birden çok npm projem var. Bu görevi her .npmrc dosyası için çalıştırmam gerekiyor mu?

Bu görev aynı anda yalnızca bir .npmrc dosyasına kimlik doğrulama ayrıntıları ekler. Birden çok .npmrc dosyası için kimlik doğrulamasına ihtiyacınız varsa, görevi her .npmrc dosyası için bir kez birden çok kez çalıştırabilirsiniz. Alternatif olarak, projeleriniz tarafından kullanılan tüm kayıt defterlerini belirten bir .npmrc dosyası oluşturmayı, bu npmAuthenticate dosyasında .npmrc çalıştırmayı ve ardından bu .npmrc dosyasını npm kullanıcı başına yapılandırma dosyası olarak belirleyecek bir ortam değişkeni ayarlamayı göz önünde bulundurun.

- 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

Aracım bir web ara sunucusunun arkasında. npmAuthenticate ara sunucumu kullanmak için npm/gulp/Grunt ayarlayacak mı?

Yanıt hayır. Bu görev, aracınız kullanacak şekilde yapılandırılmışbir web ara sunucusunun arkasında çalışacak olsa da, npm veya npm görev çalıştırıcılarını ara sunucuyu kullanacak şekilde yapılandırmaz.

Bunu yapmak için şunları yapabilirsiniz:

  • Ortam değişkenlerini http_proxy/https_proxy ayarlayın ve isteğe bağlı olarak ara sunucu ayarlarınıza no_proxy. Ayrıntılar için bkz. npm yapılandırma. Bunların, diğernpm olmayan araçların (ör. curl) de kullanabilecekleri yaygın olarak kullanılan değişkenler olduğunu unutmayın.

  • ara sunucu ayarlarını npm yapılandırmael ile, npm yapılandırma kümesikullanarak veya ön ekli NPM_CONFIG_ ortam değişkenlerini ayarlayarak ekleyin.

    Önemli

    npm görev çalıştırıcıları, npmtarafından desteklenen tüm ara sunucu yapılandırması yöntemleriyle uyumlu olmayabilir.

  • npmçağırırken komut satırı bayrağıyla ara sunucuyu belirtin.

    - script: npm ci --https-proxy $(agent.proxyurl)
    

Ara sunucunuz kimlik doğrulaması gerektiriyorsa, kimliği doğrulanmış bir proxy URI'si oluşturmak için ek bir derleme adımı eklemeniz gerekebilir.

- 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)

İşlem Hattımın farklı bir projedeki bir akışa erişmesi gerekiyor

İşlem hattı akışı barındıran projeden farklı bir projede çalışıyorsa, derleme hizmetine okuma/yazma erişimi vermek için diğer projeyi ayarlamanız gerekir. Daha fazla detay için Paket izinleri Azure Pipelines sayfasına bakınız.

Örnekler

Kuruluşunuzdaki bir kayıt defterinden projeniz için npm paketlerini geri yükleme

Kullandığınız tek kimlik doğrulama kayıtları organizasyonunuzdaki Azure Artifacts kayıtlarsa, sadece npmAuthenticate görevine giden .npmrc dosyasına giden yolu belirtmeniz yeterlidir.

.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 paketlerini kuruluşunuzun dışında geri yükleme ve yayımlama

Eğer .npmrc farklı bir kuruluştan Azure Artifacts kayıt sistemine sahipse veya üçüncü taraf kimlik doğrulamalı paket deposu kullanıyorsa, npm servis bağlantılarını kurup bunları customEndpoint girişinde belirtmeniz gerekir. Azure Artifacts organizasyonunuzdaki kayıtlar da otomatik olarak kimlik doğrulaması sağlanacaktır.

.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

Azure Artifacts akışına işaret eden kayıt defteri URL'si projeyi içerebilir veya içermeyebilir. Proje kapsamlı akışın URL'si projeyi içermeli ve kuruluş kapsamlı akışın URL'si projeyi içermemelidir. proje kapsamlı akışları hakkında daha fazla bilgi edinin.

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 ve ThirdPartyRepositoryNpmConnection, işlem hattınızda kullanılmak üzere yapılandırılmış ve yetkilendirilmiş npm hizmet bağlantılarının adlarıdır ve belirtilen .npmrc dosyasındakilerle eşleşen URL'lere sahiptir.

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme, Klasik sürüm
Üzerinde çalışır Aracı, DeploymentGroup
Talepleri Hiç kimse
Özellikleri Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz.
Komut kısıtlamaları Herhangi bir
Ayarlanabilir değişkenleri Herhangi bir
Aracı sürümü 2.115.0 veya üzeri
Görev kategorisi Paket