Paket: npm Kimlik Doğrulama görevi (görev çalıştırıcıları için)

Azure Pipelines

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

YAML kod parçacığı

# npm authenticate
# 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 and npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
  inputs:
    #workingFile:
    #customEndpoint: # Optional

Bağımsız değişkenler

Bağımsız Değişken Description
workingFile
Kimlik doğrulaması için .npmrc dosyası
Çalışmak istediğiniz kayıt defterlerini belirten .npmrc dosyasının yolu. Klasörü değil dosyayı seçin.
Örneğin / packages/mypackage.npmrc"
customEndpoint
Bu kuruluş/koleksiyon dışındaki kayıt defterleri için kimlik bilgileri
(İsteğe bağlı) Bu kuruluş/koleksiyon dışındaki kayıt defterleri için npmhizmeti bağlantı adlarının virgülle ayrılmış listesi. Belirtilen .npmrc dosya, hizmet bağlantılarına karşılık gelen kayıt defteri girdilerini içermeli. Yalnızca bu kuruluşta/koleksiyonda kayıt defterleri gerekirse bu alanı boş bırakın. Derlemenin kimlik bilgileri otomatik olarak kullanılır.

Örnekler

Projeniz için npm paketlerini kuruluş içindeki bir kayıt defterinden geri yükleme

Yalnızca kimliği doğrulanmış kayıt defterleri Azure Artifacts kayıt defterleri ise, npmAuthenticate görevinin bir .npmrc dosyasının yolunu belirtmeniz gerekir.

.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

Kuruluşunuzun dışındaki NPM paketlerini geri yükleme ve yayımlama

.npmrcFarklı bir kuruluştan Azure Artifacts kayıt defterleri içeriyorsa veya üçüncü taraf kimliği doğrulanmış bir paket deposu kullanıyorsanız, NPM hizmeti bağlantıları ayarlamanız ve bunları girişte belirtmeniz gerekir customEndpoint . Azure Artifacts kuruluşunuzdaki kayıt defterlerinin de otomatik olarak kimlik doğrulaması yapılı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 bir akışa işaret eden kayıt defteri URL 'SI, projeyi içerebilir veya içermeyebilir. Proje kapsamlı bir akışın URL 'SI projeyi içermeli ve kuruluş kapsamındaki bir akışın URL 'SI projeyi içermemelidir. Daha fazla bilgi edinin.

npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
    customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- 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 dosyadaki olanlarla eşleşen URL 'ler vardır .npmrc .

Denetim seçenekleri

Açık kaynak

Bu görev GitHub 'daaçık kaynaktır. Geribildirim ve katılımlar hoş geldiniz.

SSS

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

Bu görev, .npmrc kayıt defteri girdileri için belirtilen dosyayı arar ve ardından keşfedilen kayıt defterleri için kimlik doğrulama ayrıntılarını dosyanın sonuna ekler. Geçerli kuruluştaki/koleksiyondaki tüm kayıt defterleri için, yapı kimlik bilgileri kullanılır. Farklı bir kuruluştaki veya üçüncü taraflarca barındırılan kayıt defterleri için kayıt defteri URI 'leri, giriş tarafından belirtilen NPM hizmeti bağlantılarının URI 'leriyle karşılaştırılır customEndpoint ve ilgili kimlik bilgileri kullanılacaktır. .npmrcDosya, işlem hattı yürütmesinin sonunda özgün durumuna geri döndürülecek.

Ardışık düzeninde bu görevi çalıştırmam gerekir mi?

Bu görevin, Azure Artifacts gibi kimliği doğrulanmış bir NPM deposuna paket yüklemek veya göndermek için NPM veya NPM görev Çalıştırıcısı 'nı kullanmadan önce çalıştırılması gerekir. Başka bir sıralama gereksinimi yoktur.

Birden çok NPM projesi var. Bu görevi her. npmrc dosyası için çalıştıralmam gerekiyor mu?

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

- 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 proxy. npmAuthenticate, proxy'mi kullanmak için npm/gulp/Grunt'yi ayaracak mı?

Yanıt hayır. Bu görev, aracınız kullanmak üzere web proxy bir görev arkasında çalışsa da,npm veya npm görev çalıştırıcılarını proxy'yi kullanmak üzere yapılandırmaz.

Bunu yapmak için şunları da yapmak için:

  • Ortam değişkenlerini ve http_proxy / https_proxy isteğe bağlı olarak no_proxy ara sunucu ayarlarınızı ayarlayın. Ayrıntılar için bkz. npm yapılandırması. Bunların yaygın olarak kullanılan değişkenler olduğunu ve npm olmayan diğer araçların (örn. curl) de kullanabileceğini unutmayın.

  • Proxy ayarlarını npmyapılandırmasına el ile, npm config setkullanarak veya ön ekli ortam değişkenlerini ayarerek NPM_CONFIG_ ekleyin.

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

  • npm çağrılırken proxy'yi komut satırı bayrağıyla belirtme

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

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

- 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 farklı bir projede yer alan 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 kurmanız gerekir. Diğer ayrıntılar için bkz. Azure Pipelines paket izinleri.