Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Artifacts, geliştiricilerin hem npmjs.com hem de özel akışlar gibi genel kayıt defterleri de dahil olmak üzere çeşitli kaynaklardan paketlerini yönetmesine olanak tanır. Azure Artifacts ile kimlik doğrulaması yapmak için npm yapılandırma dosyanızı yapılandırmanız gerekir. Bu dosya npm tarafından kullanılan akış URL'lerini ve kimlik bilgilerini içerir; proxy'leri ayarlama, varsayılan paket konumlarını tanımlama veya özel paket akışlarını yapılandırma gibi npm istemci davranışınızı özelleştirme seçenekleri sunar. .npmrc dosyası genellikle kullanıcının giriş dizininde bulunur, ancak varsayılan ayarları geçersiz kılmak için proje düzeyinde de oluşturulabilir.
Önkoşullar
Bir Azure DevOps kuruluşu. Ücretsiz bir tane oluşturun.
Azure DevOps projesi. Henüz bir projeniz yoksa yeni bir proje oluşturun.
Azure Artifacts akışı. Ücretsiz bir tane oluşturun.
Azure Artifacts iki ayrı yapılandırma dosyası kullanılmasını önerir. Birincisi Azure Artifacts ile kimlik doğrulamaya ayrılmışken, ikincisi kimlik bilgilerinizi depolamak için yerel olarak tutulmalıdır. Bu yaklaşım, kimlik bilgilerinizi güvenli tutarken yapılandırma dosyanızı paylaşmanızı sağlar.
İkinci dosyayı ayarlamak için geliştirme makinenizdeki giriş dizininize yerleştirmeniz ve tüm kayıt defteri kimlik bilgilerinizi eklemeniz yeterlidir. Bu, npm istemcisinin kimlik doğrulaması için kimlik bilgilerinize kolayca erişmesini sağlar.
Aşağıdaki adımlar, ilk yapılandırma dosyasını ayarlama konusunda size yol gösterir:
Aşağıdaki kod parçacığını kopyalayın ve kullanıcı düzeyi npmrc dosyanıza yapıştırın:
Kuruluş kapsamlı akış:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Proje kapsamlı akış:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Komut istemi penceresinde aşağıdaki komutu çalıştırın ve istendiğinde kişisel erişim belirtecinizi yapıştırın. İşiniz bittiğinde, oluşturulan Base 64 kodlanmış değerini kopyalayın.
Linux/Mac kullanıyorsanız, alternatif olarak aşağıdaki komutu kullanarak kişisel erişim belirtecinizi Temel 64'e dönüştürebilirsiniz. Sonuçta elde edilen Base64 kodlanmış değerini kopyalayın.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Kullanıcı .npmrc dosyanızdaki [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] yer tutucularını önceki adımdan alınan kodlanmış kişisel erişim belirteci ile değiştirin.
Aşağıdaki kod parçacığını kopyalayın ve kullanıcı düzeyi .npmrc dosyanıza yapıştırın:
Koleksiyon kapsamlı akış:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Proje kapsamlı akış:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Komut istemi penceresinde aşağıdaki komutu çalıştırın ve istendiğinde kişisel erişim belirtecinizi yapıştırın. İşiniz bittiğinde, oluşturulan Base 64 kodlanmış değerini kopyalayın.
Kullanıcı .npmrc dosyanızdaki [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] yer tutucularını önceki adımdan alınan kodlanmış kişisel erişim belirteci ile değiştirin.
Aşağıdaki kod parçacığını kopyalayın ve kullanıcı düzeyi .npmrc dosyanıza yapıştırın:
Koleksiyon kapsamlı akış:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Proje kapsamlı akış:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Komut istemi penceresinde aşağıdaki komutu çalıştırın ve istendiğinde kişisel erişim belirtecinizi yapıştırın. İşiniz bittiğinde, oluşturulan Base 64 kodlanmış değerini kopyalayın.
Kullanıcı .npmrc dosyanızdaki [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] yer tutucularını önceki adımdan alınan kodlanmış kişisel erişim belirteci ile değiştirin.
Azure DevOps koleksiyonunuzda oturum açın ve projenize gidin.
Yapıtlar'ı ve ardından Akışa bağlan'ı seçin.
Yeni bir pencere görüntülenir. Sol gezinti bölmesinde npm'yi seçin.
Projenizi ve kullanıcı .npmrc dosyalarınızı yapılandırmak için sağlanan yönergeleri izleyin.
İşlem hattınızla kimlik doğrulaması yapmak için Azure Artifacts, npm kimlik doğrulama görevinin kullanılmasını önerir.
Gulp veya Grunt gibi görev çalıştırıcıları kullanırken, işlem hattınızın başında npm kimlik doğrulama görevinizi ayarlamaya öncelik vermek gerekir. Bu adım, kimlik bilgilerinizin projenizin .npmrc dosyasına eklenip işlem hattı çalıştırması boyunca saklanmasını garanti eder ve yapılandırma dosyasındaki kimlik bilgilerine erişmek için sonraki adımları etkinleştirir.
Projenize gidin, İşlem hatları'na ve ardından işlem hattı tanımınızı seçin.
İşlem hattınızı değiştirmek için Düzenle'yi seçin.
İşlem hattınıza yeni bir görev eklemek için seçin + .
Projenize gidin, İşlem Hatları Derlemeleri'ne> tıklayın ve ardından derleme tanımınızı seçin.
Derleme işlem hattınızı değiştirmek için Düzenle'yi seçin.
Derleme işlem hattınıza yeni bir görev eklemek için seçin + .
npm Kimlik Doğrulaması görevini arayın ve Ekle'yi seçin.
.npmrc dosyanızı seçin ve işiniz bittiğinde Kaydet ve kuyruk seçeneğini belirleyin.
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc ## Path to the npmrc file
customEndpoint: #Optional ## Comma-separated list of npm service connection names for registries from external organizations. For registries in your org, leave this blank
Not
akışınıza işlem hattınızdan erişmek için, Akış ayarları>İzinleri'nde derleme hizmeti rolünün Akış ve Yukarı Akış Okuyucusu (Katkıda Bulunan) olarak ayarlandığından emin olun.
Bu hata, npm modules klasörünün yolunuz için eklenmediğini gösterir. Node.js kurulumunu yeniden çalıştırın ve seçeneği belirlediğinizden Add to PATH emin olun. Alternatif olarak, Komut İstemi'nde veya $env:APPDATA\npm PowerShell'de PATH değişkenini %APPDATA%\npm değiştirerek npm modules klasörünü yolunuza ekleyebilirsiniz.
Kimlik doğrulanamadı
Hata: kod E401 npm ERR! Kimlik doğrulaması yapılamıyor: -> Yeniden kimlik doğrulaması yapmak için komutu -F bayrağıyla çalıştırınvsts-npm-auth:
vsts-npm-auth -config .npmrc -F
vsts-npm-auth'i sıfırla
vsts-npm-auth kimlik bilgilerinizi sıfırlamak için şu adımları izleyin:
403 hatasıyla karşılaşırsanız, bu bir ad çakışması olduğunu gösterebilir. Azure Artifacts'te paketler sabittir; başka bir deyişle akışınızda bir paket yayımladığınızda sürüm numarası kalıcı olarak ayrılmıştır. Silseniz bile, aynı sürüm numarasına sahip yeni bir paket yayımlayamazsınız. Bu sorunu gidermek için package.json dosyanızdaki paket sürümünü güncelleştirin ve yeniden deneyin.