Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Npm kapsamları, ilgili paketleri gruplar halinde kategorilere ayırmak için bir araç görevi görür. Bu kapsamlar, çakışmalarla karşılaşmadan farklı kullanıcılar tarafından oluşturulanlarla aynı adlara sahip paketler oluşturmanıza olanak tanır. Kapsamları kullanarak, @scopeName kapsam ön ekini ekleyerek ve .npmrc dosyasını yalnızca bu kapsama sahip bir akışı kullanacak şekilde yapılandırarak genel ve özel paketleri ayırma olanağınız vardır.
Azure Artifacts, akışlardan veya genel kayıt defterlerinden hem kapsamlı hem de kapsamsız paketleri yayımlama ve indirme özelliği sağlar. Npm kapsamları, İnternet erişimi olmayan şirket içinde barındırılan sunucularla çalışırken özellikle değerlidir çünkü bu tür senaryolarda yukarı akış kaynaklarını yapılandırmak mümkün değildir. Özetle, kapsamları kullanırken:
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
Yapıtlar'ı ve ardından beslenen Bağlan seçin.
npm'yi ve ardından Diğer'i seçin.
package.json ile aynı dizine bir .npmrc
dosya ekleyin ve aşağıdaki kod parçacığını dosyanıza yapıştırın.
Kuruluş kapsamlı akış:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
Proje kapsamlı akış:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
Aşağıdaki kod parçacığını kullanıcı düzeyi .npmrc
dosyanıza kopyalayın (Örnek: C:\Users\FabrikamUser.npmrc). Kaynak deponuzun içindeki .npmrc dosyasına yapıştırmadığınızdan emin olun.
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
Paketleme>Okuma ve yazma kapsamları ile kişisel erişim belirteci oluşturun.
Yeni oluşturulan kişisel erişim belirtecinizi kodlamak için aşağıdaki komutu çalıştırın. İstendiğinde, kişisel erişim belirtecinizi yapıştırın ve ardından elde edilen Base64 kodlanmış değerini kopyalayı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(); })"
Dosyanızı .npmrc
açın ve yer tutucuyu [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
yeni oluşturduğunuz kodlanmış kişisel erişim belirtecinizle değiştirin.
.npmrc dosyanızda değerini ile @ScopeName:registry=<YOUR_SOURCE_URL>
değiştirinregistry=<YOUR_SOURCE_URL>
.
package.json dosyanıza hem kapsam hem de paket adlarını şu şekilde eklediğinizden emin olun: { "name": "@ScopeName/PackageName" }
. Aşağıdaki örneklere bakın:
Kuruluş kapsamlı akış:
@ScopeName:registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
{
"name": "@ScopeName/PackageName"
}
Proje kapsamlı akış:
@ScopeName:registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
always-auth=true
{
"name": "@ScopeName/PackageName"
}
Örnek:
@local:registry=https://pkgs.dev.azure.com/FabrikamOrg/NpmDemo/_packaging/FabrikamFeed/npm/registry/
always-auth=true
{
"name": "@demo/js-e2e-express-server",
"version": "2.0.0",
"description": "JavaScript server written with Express.js",
"main": "index.js",
"directories": {
"doc": "docs",
"test": "test"
}
Bir komut istemi penceresi açın, proje dizininize gidin ve kapsamlı paketinizi yayımlamak için aşağıdaki komutu çalıştırın. Örneğimizde paketimiz görünümün @local altında listelenmiştir.
npm publish
Yukarı akış kaynakları, akışınızda kapsamlı ve kapsamsız paketlerin yanı sıra npmjs.com gibi genel kayıt defterlerinden hem kapsamlı hem de kapsamsız paketleri kullanma esnekliği sunar.
Ancak kapsamlar paketlerinize bir adlandırma kısıtlaması uygular: her paket adı ile @<scope>
başlamalıdır. Özel paketlerinizi genel kayıt defterlerinde yayımlamak istiyorsanız, bunu kapsamları olduğu gibi yapmanız gerekir. Paketlerinizi dağıtırken paket kapsamlarını kaldırırsanız, package.json dosyanızdaki tüm başvuruları güncelleştirmeniz gerekir. Bunu göz önünde bulundurarak kapsamlar, yukarı akış kaynaklarına uygun bir alternatif olarak kullanılabilir.
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunEğitim