Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan tugas ini untuk memberikan kredensial npm ke file .npmrc di repositori Anda untuk cakupan build. Ini memungkinkan npm, serta npm pelari tugas seperti gulp dan Grunt, untuk mengautentikasi dengan registri privat.
Sintaksis
# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
workingFile: # string. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
Masukan
workingFile
-
file .npmrc untuk mengautentikasi
string. Dibutuhkan.
Jalur ke file .npmrc yang menentukan registri yang ingin Anda kerjakan. Pilih file, bukan folder, seperti /packages/mypackage.npmrc.
customEndpoint
-
Kredensial untuk registri di luar organisasi/kumpulan ini
string.
Daftar koneksi layanan npm yang dipisahkan koma nama untuk registri di luar organisasi atau koleksi ini. File .npmrc yang ditentukan harus berisi entri registri yang sesuai dengan koneksi layanan. Jika Anda hanya memerlukan registri di organisasi atau koleksi ini, biarkan kosong ini. Kredensial build digunakan secara otomatis.
Opsi kontrol tugas
Semua tugas memiliki opsi kontrol selain input tugasnya. Untuk informasi selengkapnya, lihat opsi Kontrol dan properti tugas umum.
Variabel output
Tidak ada.
Komentar
Gunakan tugas ini untuk memberikan kredensial npm ke file .npmrc di repositori Anda untuk cakupan build. Ini memungkinkan npm, serta npm pelari tugas seperti gulp dan Grunt, untuk mengautentikasi dengan registri privat.
- Bagaimana cara kerja tugas ini?
- Kapan dalam alur saya harus menjalankan tugas ini?
- Saya memiliki beberapa proyek npm. Apakah saya perlu menjalankan tugas ini untuk setiap file .npmrc?
- Agen saya berada di belakang proksi web. Apakah
npmAuthenticateakan menyiapkannpm/gulp/Gruntuntuk menggunakan proksi saya? - Alur Saya perlu mengakses umpan di proyek lain
Bagaimana cara kerja tugas ini?
Tugas ini mencari file .npmrc yang ditentukan untuk entri registri, lalu menambahkan detail autentikasi untuk registri yang ditemukan ke akhir file. Untuk semua registri dalam organisasi/koleksi saat ini, kredensial build digunakan. Untuk registri di organisasi yang berbeda atau dihosting oleh pihak ketiga, URI registri akan dibandingkan dengan URI koneksi layanan npm ditentukan oleh input customEndpoint, dan kredensial yang sesuai akan digunakan. File .npmrc akan dikembalikan ke status aslinya di akhir eksekusi alur.
Kapan dalam alur saya harus menjalankan tugas ini?
Tugas ini harus berjalan sebelum Anda menggunakan npm, atau runner tugas npm, untuk menginstal atau mendorong paket ke repositori npm terautentikasi seperti Azure Artifacts. Tidak ada persyaratan pemesanan lainnya.
Saya memiliki beberapa proyek npm. Apakah saya perlu menjalankan tugas ini untuk setiap file .npmrc?
Tugas ini hanya akan menambahkan detail autentikasi ke satu file .npmrc sekaligus. Jika Anda memerlukan autentikasi untuk beberapa file .npmrc, Anda dapat menjalankan tugas beberapa kali, sekali untuk setiap file .npmrc. Sebagai alternatif, pertimbangkan untuk membuat file .npmrc yang menentukan semua registri yang digunakan oleh proyek Anda, menjalankan npmAuthenticate pada file .npmrc ini, lalu mengatur variabel lingkungan untuk menunjuk file .npmrc ini sebagai file konfigurasi npm per pengguna.
- task: npmAuthenticate@0
inputs:
workingFile: $(Agent.TempDirectory)/.npmrc
- script: echo "##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(Agent.TempDirectory)/.npmrc"
- script: npm ci
workingDirectory: project1
- script: npm ci
workingDirectory: project2
Agen saya berada di belakang proksi web. Apakah npmAuthenticate akan menyiapkan npm/gulp/Grunt untuk menggunakan proksi saya?
Jawabannya adalah tidak. Meskipun tugas ini sendiri akan bekerja di belakang proksi web agen Anda telah dikonfigurasi untuk menggunakan, tugas ini tidak mengonfigurasi npm atau npm pelari tugas untuk menggunakan proksi.
Untuk melakukannya, Anda dapat:
Atur variabel lingkungan
http_proxy/https_proxydan secara opsionalno_proxyke pengaturan proksi Anda. Lihat konfigurasi npm untuk detailnya. Perhatikan bahwa ini adalah variabel yang umum digunakan yang juga dapat digunakan oleh alat non-npmlainnya (misalnya curl).Tambahkan pengaturan proksi ke konfigurasi npm, baik secara manual, dengan menggunakan npm config set, atau dengan mengatur variabel lingkungan diawali dengan
NPM_CONFIG_.Penting
npmpelari tugas mungkin tidak kompatibel dengan semua metode konfigurasi proksi yang didukung olehnpm.Tentukan proksi dengan bendera baris perintah saat memanggil
npm.- script: npm ci --https-proxy $(agent.proxyurl)
Jika proksi Anda memerlukan autentikasi, Anda mungkin perlu menambahkan langkah build tambahan untuk membuat URI proksi terautentikasi.
- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)
Alur Saya perlu mengakses umpan dalam proyek yang berbeda
Jika alur berjalan dalam proyek yang berbeda dari proyek yang menghosting umpan, Anda harus menyiapkan proyek lain untuk memberikan akses baca/tulis ke layanan build. Lihat izin Paket di Azure Pipelines untuk detail selengkapnya.
Contoh
-
Memulihkan paket
npmuntuk proyek Anda dari registri dalam organisasi Anda -
Memulihkan dan menerbitkan paket
npmdi luar organisasi Anda - NPMRC
- npm
Memulihkan paket npm untuk proyek Anda dari registri dalam organisasi Anda
Jika satu-satunya registri terautentikasi yang Anda gunakan adalah registri Azure Artifacts di organisasi Anda, Anda hanya perlu menentukan jalur ke file .npmrc ke tugas npmAuthenticate.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
- script: npm ci
- script: npm publish
Memulihkan dan menerbitkan paket npm di luar organisasi Anda
Jika .npmrc Anda berisi registri Azure Artifacts dari organisasi lain atau menggunakan repositori paket terautentikasi pihak ketiga, Anda harus menyiapkan koneksi layanan npm dan menentukannya dalam input customEndpoint.
Registri dalam organisasi Azure Artifacts Anda juga akan diautentikasi secara otomatis.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true
URL registri yang menunjuk ke umpan Azure Artifacts mungkin atau mungkin tidak berisi proyek. URL untuk umpan cakupan proyek harus berisi proyek, dan URL untuk umpan terlingkup organisasi tidak boleh berisi proyek. Pelajari selengkapnya tentang umpan cakupan proyek .
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection # Name of your service connection
- script: npm ci
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
OtherOrganizationNpmConnection dan ThirdPartyRepositoryNpmConnection adalah nama koneksi layanan npm yang telah dikonfigurasi dan diotorisasi untuk digunakan dalam alur Anda, dan memiliki URL yang cocok dengan yang ada dalam file .npmrc yang ditentukan.
Persyaratan
| Persyaratan | Deskripsi |
|---|---|
| Jenis alur | YAML, Build klasik, Rilis klasik |
| Berjalan pada | Agen, DeploymentGroup |
| Permintaan |
Tidak |
| Kemampuan |
Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan. |
| pembatasan Perintah |
Apapun |
| variabel yang Dapat Diatur |
Apapun |
| Versi agen | 2.115.0 atau lebih tinggi |
| Kategori tugas | Paket |