Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Artifacts memungkinkan pengembang mengelola paket mereka dari berbagai sumber, termasuk registri publik seperti npmjs.com dan umpan privat. Untuk mengautentikasi dengan Azure Artifacts, Anda harus mengonfigurasi file konfigurasi npm Anda. File ini berisi URL umpan dan kredensial yang digunakan oleh npm, menawarkan opsi untuk menyesuaikan perilaku klien npm Anda, seperti menyiapkan proksi, menentukan lokasi paket default, atau mengonfigurasi umpan paket privat. File .npmrc biasanya terletak di direktori beranda pengguna tetapi juga dapat dibuat di tingkat proyek untuk mengambil alih pengaturan default.
Azure Artifacts merekomendasikan penggunaan dua file konfigurasi terpisah. Yang pertama didedikasikan untuk mengautentikasi dengan Azure Artifacts, sementara yang kedua harus disimpan secara lokal untuk menyimpan kredensial Anda. Pendekatan ini memungkinkan Anda berbagi file konfigurasi sambil menjaga kredensial Anda tetap aman.
Untuk menyiapkan file kedua, cukup letakkan di direktori rumah Anda di komputer pengembangan Anda dan sertakan semua kredensial registri Anda. Ini memungkinkan klien npm untuk dengan mudah mengakses kredensial Anda untuk autentikasi.
Langkah-langkah berikut akan memandu Anda menyiapkan file konfigurasi pertama:
Catatan
vsts-npm-auth tidak didukung di Azure DevOps Server.
Salin cuplikan berikut dan tempelkan ke file npmrc tingkat pengguna Anda:
Umpan cakupan organisasi:
; 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
Umpan cakupan proyek:
; 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
Hasilkan token akses pribadi dengan cakupan baca dan tulis kemasan.
Jalankan perintah berikut di jendela prompt perintah, lalu tempelkan token akses pribadi Anda saat diminta. Setelah selesai, salin nilai yang dikodekan Base 64 yang dihasilkan.
Jika Anda menggunakan Linux/Mac, Anda dapat menggunakan perintah berikut untuk mengonversi token akses pribadi Anda ke Base 64. Salin nilai yang dikodekan Base64 yang dihasilkan.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Ganti tempat penampung [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] dalam file .npmrc pengguna Anda dengan token akses pribadi yang dikodekan yang diperoleh dari langkah sebelumnya.
Salin cuplikan berikut dan tempelkan ke file .npmrc tingkat pengguna Anda:
Umpan cakupan koleksi:
; 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
Umpan cakupan proyek:
; 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
Hasilkan token akses pribadi dengan cakupan baca dan tulis kemasan.
Jalankan perintah berikut di jendela prompt perintah, lalu tempelkan token akses pribadi Anda saat diminta. Setelah selesai, salin nilai yang dikodekan Base 64 yang dihasilkan.
Ganti tempat penampung [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] dalam file .npmrc pengguna Anda dengan token akses pribadi yang dikodekan yang diperoleh dari langkah sebelumnya.
Salin cuplikan berikut dan tempelkan ke file .npmrc tingkat pengguna Anda:
Umpan cakupan koleksi:
; 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
Umpan cakupan proyek:
; 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
Hasilkan token akses pribadi dengan cakupan baca dan tulis kemasan.
Jalankan perintah berikut di jendela prompt perintah, lalu tempelkan token akses pribadi Anda saat diminta. Setelah selesai, salin nilai yang dikodekan Base 64 yang dihasilkan.
Ganti tempat penampung [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] dalam file .npmrc pengguna Anda dengan token akses pribadi yang dikodekan yang diperoleh dari langkah sebelumnya.
Masuk ke koleksi Azure DevOps Anda, lalu navigasikan ke proyek Anda.
Pilih Artefak, lalu pilih Sambungkan ke umpan.
Jendela baru akan muncul. Dari panel navigasi sebelah kiri, pilih npm.
Ikuti instruksi yang disediakan untuk mengonfigurasi file .npmrc proyek dan pengguna Anda.
Tip
Menggunakan beberapa registri dalam file .npmrc didukung dengan cakupan dan sumber hulu.
Autentikasi alur
Untuk mengautentikasi dengan alur Anda, Azure Artifacts merekomendasikan penggunaan tugas autentikasi npm.
Saat menggunakan pelari tugas seperti gulp atau Grunt, anda harus memprioritaskan pengaturan tugas autentikasi npm Anda di awal alur Anda. Langkah ini menjamin bahwa kredensial Anda disuntikkan ke dalam file .npmrc proyek Anda dan dipertahankan di seluruh eksekusi alur, memungkinkan langkah-langkah berikutnya untuk mengakses kredensial dalam file konfigurasi.
Navigasi ke proyek Anda, pilih Alur, lalu pilih definisi alur Anda.
Pilih Edit untuk mengubah alur Anda.
Pilih + untuk menambahkan tugas baru ke alur Anda.
Navigasi ke proyek Anda, pilih Build Alur>, lalu pilih definisi build Anda.
Pilih Edit untuk mengubah alur build Anda.
Pilih + untuk menambahkan tugas baru ke alur build Anda.
Cari tugas Autentikasi npm, lalu pilih Tambahkan.
Pilih file .npmrc Anda, lalu pilih Simpan &antrean setelah selesai.
- 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
Catatan
Untuk mengakses umpan dari alur Anda, pastikan bahwa peran layanan build diatur ke Umpan Dan Pembaca Upstream (Kontributor) di Izin pengaturan>Umpan Anda.
Catatan
Jika organisasi Anda menggunakan firewall atau server proksi, pastikan Anda mengizinkan URL domain yang sesuai. Lihat Alamat IP dan URL domain yang diizinkan untuk detailnya.
Pecahkan masalah
vsts-npm-auth tidak dikenali
Kesalahan ini menunjukkan bahwa folder modul npm belum ditambahkan ke jalur Anda. Jalankan ulang penyiapan Node.js dan pastikan untuk memilih Add to PATH opsi . Atau, Anda dapat menambahkan folder modul npm ke jalur Anda dengan memodifikasi variabel PATH ke %APPDATA%\npm di Command Prompt atau $env:APPDATA\npm di PowerShell.
Tidak dapat mengautentikasi
Kesalahan: kode E401 npm ERR! Tidak dapat mengautentikasi: -> Jalankan vsts-npm-auth perintah dengan bendera -F untuk mengautentikasi ulang:
vsts-npm-auth -config .npmrc -F
Reset vsts-npm-auth
Ikuti langkah-langkah ini untuk mengatur ulang info masuk vsts-npm-auth Anda:
Jika Anda mengalami kesalahan 403, itu mungkin menunjukkan konflik nama. Di Azure Artifacts, paket tidak dapat diubah, yang berarti bahwa setelah Anda menerbitkan paket ke umpan Anda, nomor versinya dicadangkan secara permanen. Bahkan jika Anda menghapusnya, Anda tidak dapat menerbitkan paket baru dengan nomor versi yang sama. Untuk mengatasi masalah ini, perbarui versi paket dalam file package.json Anda, lalu coba lagi.