İstemcinizin npmrc'sini ayarlama

Azure DevOps Services | TFS 2018 | TFS 2017

Azure Artifacts, farklı paket Azure DevOps Services Azure DevOps Server, yükleme ve yayımlamayı kolaylaştıran bir uzantıdır. Diğer ayrıntılar için Azure Artifacts kullanmaya başlama'ya göz atabilirsiniz.

Tüm Azure Artifacts kimlik doğrulaması gerektirir, bu nedenle paketleri yüklemeden veya yayımlamadan önce akışın kimlik bilgilerini depolamanız gerekir. npm, akış URL'lerini ve kimlik bilgilerini depolamak için .npmrc yapılandırma dosyalarını kullanır.

.npmrc dosyalarım nerede?

Azure DevOps Services iki .npmrc dosyası kullanılması önerilir:

  1. Bir .npmrc, üzerinde projenizin çalışma alanıyla bitişik olan git depopackage.js bulun.

    1. Paketler sayfasında Akışa Bağlan'ye tıklayın

      Bağlan Azure Devops'ta Azure Artifacts düğmesi

      Bağlan TFS'yi besleme

    2. npm öğesini seçin.

    3. Sağ üst köşedeki Araçları al'ı seçin.

    1. Node.js, npm ve artifacts kimlik bilgisi sağlayıcısını indirmek için 1. ve 2. adımları izleyin.

    2. Projenizi ayarlamak Project kurulum bölümündeki yönergeleri izleyin. Paketlerinizi yayımlamak veya geri yüklemek için Paketleri geri yükleme ve Paketleri yayımlama bölümlerine bakın.

      Bağlan hizmetleri DevOps gerekir

    1. Paket kurulumu ve geri yükleme Project yönergeleri izleyin.

      Bağlan 2019 ve 2020'ye akışa

    1. Node.js, npm ve artifacts kimlik bilgisi sağlayıcısını indirmek için 1. ve 2. adımları izleyin.

    2. Projenizi ayarlamak Project kurulum bölümündeki yönergeleri izleyin. Paketlerinizi yayımlamak veya geri yüklemek için Paketleri geri yükleme ve Paketleri yayımlama bölümlerine bakın.

      Bağlan TFS proje kurulumunu besleme

  2. Geliştirme makinenize Linux veya Mac sistemleri veya sanal makineleri için .npmrc $HOME.npmrc de $env. Win sistemleri için HOME. Bu .npmrc, bağlanmanız gereken tüm kayıt defterlerinin kimlik bilgilerini içermesi gerekir. NPM istemcisi projenizin .npmrc'ine bakar, kayıt defterini keşfeder ve $HOME/.npmrc veya $env. HOME/.npmrc. Kimlik bilgisi alımı bir sonraki bölümde ele alınacak.

Bu, kimlik bilgilerinizin güvenliğini sağlarken projenin .npmrc'sini tüm ekiple paylaşmanızı sağlar.

Geliştirme kutunda kimlik doğrulamasını ayarlama

"Akışa Bağlanır" iletişim kutusunda yalnızca akışınıza ilişkin kayıt defteri bilgilerini içeren belirli bir .npmrc projeniz olması gerekir. Bu dosyada kimlik bilgileri yoktur ve dosyanın kendisi, projenizin dosyasındakipackage.js bitişiktir.

Önemli

.npmrc içinde yalnızca tek bir "registry=" satırı olabilir. Yukarı akış kaynaklarında veya kapsamlar kullanılarakbirden çok kayıt defterleri mümkündür (önerilmez).

Windows

Windows üzerinde geliştirme yapıyorsanız, kimlik bilgilerini getirmek ve bunları düzenli aralıklarla vsts-npm-auth %USERPROFILE% \ .npmrc dosyanıza eklemek için kullanmanızı öneririz. Bunu ayarlamanın en kolay yolu genel olarak yüklemektir (başka bir ifadeyle) ve ardından projenizin dosyasındaki çalışmapackage.jsvsts-npm-auth npm install -g vsts-npm-auth eklemektir.

"scripts": {
    "refreshVSToken" : "vsts-npm-auth -config .npmrc"
}

Linux veya Mac

vsts-npm-auth Linux/Mac için desteklenmiyor. Belirteci oluşturmanızı ve $HOME/.npmrc'nize kaydetmenizi öneririz.

Proje ayarları

akışa Bağlan iletişim kutusu,. npmrc dosyanıza yerleştirebileceğiniz, uygun şekilde biçimlendirilen bir belirteç oluşturur. Belirtecin 90 günlük bir kullanım ömrü vardır.

İpucu

90 günden daha uzun süre devam eden bir belirteç oluşturmak isterseniz, varsayılan sona erme tarihini değiştirdiğinizden emin olun.

  1. projenizin içinden Azure Artifacts' yi seçin ve ardından akışa Bağlan' i seçin.

    Artifacts seçip akışa Bağlan

  2. NPM'yi seçin.

  3. Project kurulum bölümünde diğer ' i seçin.

    Project kurulum, diğer işletim sistemi

  4. Dosyasında package.jsaynı dizine bir. npmrc dosyası ekleyin.

    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ı User. npmrc dosyasına kopyalayın.

    • Kuruluş kapsamındaki 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. Paket okuma ve yazma kapsamları ile bir kişisel erişim belirteci oluşturun.

  3. Yeni oluşturulan kişisel erişim belirtecinizi aşağıdaki şekilde kodlayın:

    1. Yükseltilmiş bir komut istemi penceresinde aşağıdaki komutu çalış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(); })"
      

      Ayrıca, kişisel erişim belirtecinizi, işletim sisteminize bağlı olarak Base64 'e dönüştürmek için 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 kodlamalı değeri kopyalayın.

  4. Yer tutucusunu, [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] Yeni oluşturduğunuz Kullanıcı Base64 kodlamalı kişisel erişim belirtecinizle değiştirin.

  1. paketler' den akışa Bağlan' yi seçin.

  2. NPM'yi seçin.

  3. NPM kimlik bilgileri oluştur' u seçin. Kimlik bilgilerini User. npmrc dosyanıza el ile eklemek için kopyalayın:

    NPM akışına bağlanma ekran görüntüsü.

Not

vsts-npm-authşirket içi TFS ve şirket içi Azure DevOps Server.

Projenizin paketlerle Azure Artifacts için projenizi bu akışa başvuracak şekilde ayarlayın. ile aynı dizinde .npmrc yeni bir metin dosyası oluşturun ve aşağıdaki kod package.json parçacığını kopyalayın:

@[YOUR_SCOPE]/registry=FabrikamBasic/_packaging/FabrikamFeed/npm/registry/

Paketlerinizi geri yüklemek için proje dizinde aşağıdaki komutu çalıştırın:

npm install

Derleme görevsinde kimlik doğrulamasını ayarlama

Derleme görevsinde kimlik doğrulamasını ayarlamaya iki seçenek vardır:

Görev Çalıştırıcısı Olmadan

Görev çalıştırıcısı olmayan bir derleme görevinde npm kimlik doğrulamasını ayarlamak için aşağıdaki yönergeleri izleyin.

  1. Otomatik Azure Pipelines'yi seçin. Otomatik olarak Derlemeler sayfasına inersiniz.

    Derlemeler sekmesine gidin TFS

  2. Yeni bir işlem hattı oluşturun.

    yeni derleme işlem hattı oluşturma

  3. Kaynak dalını, Project ve Varsayılan dalı seçin ve Devam'ı seçin.

  4. Boş bir iş ile başlama.

  5. Sol tarafta artı işareti ( + ) öğesini seçerek 1. İş'e bir görev ekleyin. Sağ tarafta Paket kategorisini seçin, listeden npm görevini seçin ve ardından Ekle'yi seçin.

    derleme sekmesi işe görev ekleme

  6. npm yükleme görevini seçin, ardından çalışma klasöre göz atarak çalışma klasör package.jsseçin:

    İşlem hattı derlemek için npm yükleme görevi ekleme

  7. Özel kayıt defterleri ve kimlik doğrulamasını genişletin, burada birkaç seçeneğiniz vardır:

    • .npmrc'de kayıt defterleri

      npmrc dosyasındaki kayıt defterleri

      İpucu

      Hizmet bağlantılarını ayarerek geçerli kuruluş/koleksiyonunuz dışındaki hizmetlerde kimlik doğrulaması yapmak için kimlik bilgilerini seçebilirsiniz.

    • Kayıt defteri burada seçilidir

      Kullanmak için kayıt defterleri

      Bu seçeneği tercih ettiyseniz, görev seçtiğiniz kayıt defteri için kimlik bilgileriyle geçici bir .npmrc oluşturun ve projenin .npmrc değerini geçersiz kılar. Bu, belirli bir akışta yayımlamak istediğiniz zaman kullanışlıdır.

  8. Kuyrukta &'yi ve ardından Kaydet'i seçin.

İpucu

NPM Derleme yükleme göreviniz Hata 403 ile başarısız oluyorsa, derleme hizmetinizi katkıda bulunan olarak ayarlıyorsanız emin olun. Bunu yapmak için -Azure Artifacts -> Akışınızı seçin -> Ayarlar -> İzinleri ->'e gidin ve derleme hizmeti rollerinizi katkıda bulunan olarak ayarlayın.

ipucu ekran görüntüsü

  1. Derleme ve Yayın'ı ve ardından Derlemeler'i seçin.

    Derlemeler sekmesine gidin TFS 2018

  2. Yeni bir işlem hattı oluşturun.

    yeni işlem hattı oluşturma

  3. Kaynak dalını, Project ve Varsayılan dalı seçin ve Devam'ı seçin.

  4. Boş bir iş ile başlama.

  5. Sol tarafta artı işareti ( + ) öğesini seçerek 1. İş'e bir görev ekleyin. Sağ tarafta Paket kategorisini seçin, listeden npm görevini seçin ve ardından Ekle'yi seçin.

    derlemeler sekmesi işe npm görevi ekleme

  6. npm yükleme görevini seçin, ardından çalışma klasöre göz atarak çalışma klasör package.jsseçin:

    npm yükleme görevi ekleme

  7. Özel kayıt defterleri ve kimlik doğrulamasını genişletin, burada birkaç seçeneğiniz vardır:

    • .npmrc'de kayıt defterleri

      npmrc'de kayıt defterleri

      İpucu

      Hizmet bağlantılarını ayarerek geçerli kuruluş/koleksiyonunuz dışındaki hizmetlerde kimlik doğrulaması yapmak için kimlik bilgilerini seçebilirsiniz.

    • Kayıt defteri burada seçilidir

      kayıt defteri Burada seçeneğini belirleyin

      Bu seçeneği tercih ettiyseniz, görev seçtiğiniz kayıt defteri için kimlik bilgileriyle geçici bir .npmrc oluşturun ve projenin .npmrc değerini geçersiz kılar. Bu, belirli bir akışta yayımlamak istediğiniz zaman kullanışlıdır.

  8. Kuyrukta &'yi ve ardından Kaydet'i seçin.

Bir Görev Çalıştırıcısı ile (ör. gulp işi yapma)

Bir görev çalıştırıcısı kullanırken, derleme işlem hattınızı başına npm Kimlik doğrulaması derleme görevini eklemeniz gerekir. Bu, projenizin .npmrc'sine kimlik bilgileri eklemeye ve derlemenin yaşam süresi boyunca bunları kalıcı olarak kalıcı olarak eklemeye devam eder. Bu, sonraki derleme adımlarında .npmrc'de kimlik bilgilerini kullanmalarını sağlar.

  1. Otomatik Azure Pipelines'yi seçin. Otomatik olarak Derlemeler sayfasına inersiniz.

    derlemeler sekmesine gidin TFS 2018 saniye

  2. Yeni bir işlem hattı oluşturun.

    Yeni derleme işlem hattı

  3. kaynak Project, depo ve varsayılan dalınızı seçip devam' ı seçin.

  4. Boş bir iş ile başlayın.

  5. Sol tarafta, 1. işe bir görev eklemek için artı işaretini (+) seçin. Sağ tarafta, paket kategorisini seçin, listeden NPM kimlik doğrulaması görevi ' ni seçin ve ardından Ekle' yi seçin.

    Derlemeler sekmesi NPM görevi Ekle

  6. 1. aşama altında NPM kimlik doğrulaması görevi ' ni seçin:

    NPM auth görev aşaması

  7. Kimlik doğrulamak için. npmrc dosyanıza gidin ve seçin:

    NPM kimlik doğrulama görevi

    İpucu

    Hizmet bağlantıları ayarlayarak geçerli kuruluşunuz/koleksiyonunuz dışındaki hizmetlere kimlik doğrulaması yapmak için kimlik bilgilerini seçebilirsiniz.

  8. NPM kimlik doğrulaması görevi kurulduktan sonra, Gulp gibi görev çalıştırıcısı için diğer derleme görevlerini ekleyebilirsiniz.

  1. Oluştur ve Yayınla' yı seçin ve ardından yapılar' ı seçin.

    yapılar sekmesi Team Foundation Services 'e gidin

  2. Yeni bir işlem hattı oluşturun.

    Yeni derleme işlem hattı düğmesi

  3. kaynak Project, depo ve varsayılan dalınızı seçip devam' ı seçin.

  4. Boş bir iş ile başlayın.

  5. Sol tarafta, 1. işe bir görev eklemek için artı işaretini (+) seçin. Sağ tarafta, paket kategorisini seçin, listeden NPM kimlik doğrulaması görevi ' ni seçin ve ardından Ekle' yi seçin.

    yapılar-Tab-ekleme-görev-iş

  6. 1. aşama altında NPM kimlik doğrulaması görevi ' ni seçin:

    Aşama bir NPM kimlik doğrulaması

  7. Kimlik doğrulamak için npmrc dosyanıza gidin ve seçin:

    kimlik doğrulaması için npmrc dosyası

    İpucu

    Hizmet bağlantıları ayarlayarak geçerli kuruluşunuz/koleksiyonunuz dışındaki hizmetlere kimlik doğrulaması yapmak için kimlik bilgilerini seçebilirsiniz.

  8. NPM kimlik doğrulaması görevi kurulduktan sonra, Gulp gibi görev çalıştırıcısı için diğer derleme görevlerini ekleyebilirsiniz.

Not

Yarn kullanıyorsanız, Yarn kayıt defterini ayarlamak için aşağıdaki komutu çalıştırın: yarn config set registry "https://pkgs.dev.azure.com/<yourOrganization>/_packaging/<yourFeed>/npm/registry/"

Sorunu vsts-npm-auth

  • Şunun gibi bir hata alırsanız:

    • Komut Istemi: 'vsts-npm-auth' is not recognized as an internal or external command, operable program or batch file.
    • PowerShell: vsts-npm-auth : The term 'vsts-npm-auth' is not recognized as the name of a cmdlet, function, script file, or operable program.

    Bu durumda NPM modülleri klasörü yolunuzda değildir.

    Bu sorunu onarmak için Node.js kurulum 'u yeniden çalıştırın ve Add to PATH seçeneğinin ve alt seçeneklerinin yükleme için seçili olduğundan emin olun.

    Node.js kurulumunda yola yükleme seçeneğine Ekle

    Alternatif olarak, eklenecek yol değişkenini %APPDATA%\npm (komut istemi) veya $env:APPDATA\npm (PowerShell) düzenleyebilirsiniz.

  • E401 hata halinde çalıştırıyorsanız: code E401 npm ERR! Unable to authenticate

    vsts-npm-authyeniden kimlik doğrulamak için komutunu-F bağımsız değişkeniyle çalıştırın.

    vsts-npm-auth -config .npmrc -F