Paket: NPM kimlik doğrulaması görevi (görev çalıştıranlar için)
Azure Pipelines
Bu görevi, .npmrc derleme kapsamı için deponuzdaki bir dosyaya NPM kimlik bilgilerini sağlamak üzere kullanın. Bu, NPM 'in yanı sıra özel kayıt defterleri ile kimlik doğrulaması yapmak için Gulp ve grer gibi NPM görev çalıştırmalarını 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 |
|---|---|
workingFilekimlik doğrulaması için. npmrc dosyası |
Birlikte ç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 " |
customEndpointBu kuruluşun/koleksiyonun dışındaki kayıt defterlerine yönelik kimlik bilgileri |
Seçim Bu kuruluşun/koleksiyonun dışındaki kayıt defterleri için NPM hizmet 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çermelidir. Bu kuruluşta/koleksiyonda yalnızca kayıt defterlerine ihtiyacınız varsa, bu alanı boş bırakın. Yapı kimlik bilgileri otomatik olarak kullanılır. |
Örnekler
Kuruluşunuz içindeki bir kayıt defterinden projeniz için NPM paketlerini geri yükleme
kullandığınız tek kimlik doğrulama kayıt defterleri, kuruluşunuzda Azure Artifacts kayıt defterleri ise, yalnızca bir. npmrc dosyasının yolunu bir. dosyası için bir tamsayı 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, .npmrc 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ş OtherOrganizationNpmConnection adlarıdır ve belirtilen dosyadaki olanlarla eşleşen URL 'ler vardır .npmrc .
Açık kaynak
Bu görev GitHubaçık kaynağıdı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 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, tek seferde yalnızca bir dosyaya kimlik doğrulama ayrıntıları ekler .npmrc . Birden çok dosya için kimlik doğrulaması gerekiyorsa, .npmrc her dosya için bir kez görevi birden çok kez çalıştırabilirsiniz .npmrc . Alternatif olarak, .npmrc projeleriniz tarafından kullanılan tüm kayıt defterlerini belirten bir dosya oluşturmayı, bu dosyada npon 'u çalıştırmayı .npmrc ve sonra bu .npmrc dosyayı Kullanıcı başına yapılandırma dosyası olarak belirlemek için 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 proxy 'sinin arkasında. Ara sunucuyu kullanmak için NPM/Gulp/Grsıt ayarlama
Yanıt hayır. Bu görevin kendisi bir Web proxy 'nin arkasında çalışırken, aracınız kullanmak üzere yapılandırılmışolsa da, proxy 'yi kullanmak için NPM veya NPM görev çalıştıranlar yapılandırmaz.
Bunu yapmak için şunlardan birini yapabilirsiniz:
Ortam değişkenlerini
http_proxy/https_proxyve isteğe bağlı olarakno_proxyAra sunucu ayarlarınızı belirleyin. Ayrıntılar için bkz. NPM yapılandırması . Bunların yaygın olarak kullanılan ve diğer NPM olmayan araçların (örneğin, kıvrımlı) de kullanabileceğini unutmayın.Proxy ayarlarını NPM yapılandırmasına el ile, NPM yapılandırma kümesinikullanarak ya da önekli ortam değişkenlerini ayarlayarak NPM yapılandırmasınaekleyin .
Dikkatli
NPM görev çalıştıranlar, NPM tarafından desteklenen tüm proxy yapılandırması yöntemleriyle uyumlu olmayabilir.NPM çağrılırken bir komut satırı bayrağıyla ara sunucu belirtin
- script: npm ci --https-proxy $(agent.proxyurl)
Proxy 'niz 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)
Ardışık düzen, 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 sağlamak için diğer projeyi ayarlamanız gerekir. daha fazla bilgi için bkz. Azure Pipelines paket izinleri .