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ı

  1. Projenizin içinde, öğesini seçin Azure Artifactsve ardından akışı Bağlan seçeneğini seçin.

    Akışa bağlanmayı gösteren ekran görüntüsü.

  2. npm öğesini seçin.

  3. Diğer sekmesini seçin.

    Proje ayarlamayı gösteren ekran görüntüsü.

  4. 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

  1. 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 token
      
    • Project 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
      
  2. Okuma ve yazma kapsamlarınıpaketle bir kişisel erişim belirteci oluşturma.

  3. Yeni oluşturulan kişisel erişim belirtecini aşağıdaki gibi kodla:

    1. 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
        
    2. Base64 kodlanmış değerini kopyalayın.

  4. .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.

  1. Paketler'den,akışı Bağlan'yi seçin.

  2. npm öğesini seçin.

  3. Npm kimlik bilgilerini oluştur'atıklayın ve ardından kimlik bilgilerini kopyalayıp bunları kullanıcı .npmrc dosyanıza el ile ekleyin:

    TFS'de npm kimlik bilgilerinin nasıl oluşturul olduğunu gösteren ekran görüntüsü.

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