npm kapsamlarını kullanma
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2017
Npm kapsamları, ilgili paketleri birlikte gruplamanın bir yolu olarak kullanılır. Kapsam, çakışma olmadan başka bir kullanıcı veya Kuruluş tarafından oluşturulan paketle aynı adla bir paket oluşturmanıza olanak sağlar. Kullanıcının, paketlerine bir kapsam ön eki ekleyecek ve dosyayı yalnızca bu kapsam için bir Azure Artifacts kullanmak üzere yapılandırarak ortak ve özel paketleri @SCOPE_NAME.npmrc ayırmasına olanak sağlar.
Bu Azure Artifacts, hem kapsamlı hem de kapsamlı olmayan paketleri, Artifacts akışlarınıza veya ortak kayıt defterlerinize yayımlar ve indirebilirsiniz. Npm kapsamlarını kullanmak, yukarı akış kaynaklarının ayarlandırılamayacak şekilde ayarlanmayacak şekilde, İnternet erişimi olmayan şirket içinde barındırılan şirket içi sunucularda da yararlıdır. Kapsamları kullanma:
- Ad çakışmaları konusunda endişelenmemiz gerek yok.
- Paketlerimizi yüklemek veya yayımlamak npm kayıt defteri için uygulamanın değişikliklerini değiştirmeye gerek yoktur.
- Her npm kuruluşu/kullanıcısı kendi kapsamına sahip olur ve yalnızca sahip veya kapsam üyeleri kendi kapsamına paket yayımlar.
Not
npm kapsamlarını kullanmak için npm sürüm 2 veya daha yenisi gerekir. En npm install npm@latest -g son sürüme yükseltmek için çalıştırın.
Proje ayarları
Belirli bir Azure Artifacts akışı kullanmak için .npmrc dosyamızı ayarlamamız ve ardından akışımızda kimlik doğrulaması yapmak için kimlik bilgilerini ayarlamamız gerekir.
Proje ayarları
Projenizin içinde, öğesini seçin Azure Artifactsve ardından akışı Bağlan seçeneğini seçin.
npm öğesini seçin.
Diğer sekmesini seçin.
package.json dosyanız ile aynı dizine bir .npmrc dosyası ekleyin ve aşağıdaki kod parçacığını dosyanıza yapıştırın.
registry=https://pkgs.dev.azure.com/<yourOrganization>/_packaging/<yourFeed>/npm/registry/ always-auth=true
Kimlik bilgileri kurulumu
Aşağıdaki kod parçacığını .npmrc dosyanıza kopyalayı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 tokenProject 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
Okuma ve yazma kapsamlarınıpaketle bir kişisel erişim belirteci oluşturma.
Yeni oluşturulan kişisel erişim belirtecini aşağıdaki gibi kodla:
Yükseltilmiş komut istemi penceresinde aşağıdaki komutu çalıştırın ve istendiğinde kişisel erişim belirtecini yapıştırın:
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"İşletim sisteminize bağlı olarak kişisel erişim belirtecini Base64'e dönüştürmek için de aşağıdaki komutu kullanabilirsiniz:
Windows:
[Convert]::ToBase64String([system.Text.Encoding]::UTF8.GetBytes("YOUR_PAT_GOES_HERE"))LinuxMac:
echo -n "YOUR_PAT_GOES_HERE" | base64
Base64 kodlanmış değerini kopyalayın.
.npmrc dosyanızı açın ve yer tutucusunu
[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]yeni oluşturduğunuz kullanıcı kodlanmış kişisel erişim belirteci ile değiştirin.
Paketler'den,akışı Bağlan'yi seçin.
npm öğesini seçin.
Npm kimlik bilgilerini oluştur'atıklayın ve ardından kimlik bilgilerini kopyalayıp bunları kullanıcı .npmrc dosyanıza el ile ekleyin:
.npmrc dosyanızı ile registry=<YOUR_SOURCE_URL>@SCOPE_NAME:registry=<YOUR_SOURCE_URL> değiştirin.
Not
Dosyanıza kapsam ve paket adlarını package.json ekleyin: { "name": "@SCOPE_NAME/PACKAGE_NAME" } .
Yukarı akış kaynakları mı yoksa kapsamlar mı?
Yukarı akış kaynakları, akışınıza kapsamlı ve kapsamlı olmayan paketlerin yanı sıra, akış gibi genel kayıt defterlerinden gelen kapsamlı ve kapsamlı olmayan paketlerin bir birleşimini kullanma esnekliğini npmjs.com.
Kapsamlar, paketlerinizi adlandırarak başka bir kısıtlama ekler: her paket adı ile başlan @<scope> çalışmalı. Özel paketlerinizi ortak kayıt defterlerinde yayımlamak için kapsamları olduğu gibi yayımlamanız gerekir. Paketlerinizi dağıtırken paket kapsamlarını kaldırırsanız package.jsonuygulamanıza tüm başvuruları güncelleştirmeniz gerekir. Bu nedenle, kapsamlar yukarı akış kaynaklarına uygulanabilir bir alternatif olabilir.