npmAuthenticate@0 - npm mengautentikasi tugas v0 (untuk pelari tugas)
Gunakan tugas ini untuk memberikan npm
kredensial ke .npmrc
file di repositori Anda untuk cakupan build. Ini memungkinkan npm
, serta npm
pelari tugas seperti gulp dan Grunt, untuk mengautentikasi dengan registri privat.
Sintaks
# 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.
# 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. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this account/collection.
Input
workingFile
- File .npmrc untuk diautentikasi
string
. Wajib diisi.
Jalur ke .npmrc
file yang menentukan registri yang ingin Anda kerjakan. Pilih file, bukan folder, seperti /packages/mypackage.npmrc
.
workingFile
- File .npmrc untuk diautentikasi
string
.
Jalur ke .npmrc
file yang menentukan registri yang ingin Anda kerjakan. Pilih file, bukan folder, seperti /packages/mypackage.npmrc
.
customEndpoint
- Kredensial untuk registri di luar organisasi/koleksi ini
string
.
Daftar nama koneksi layanan npm yang dipisahkan koma untuk registri di luar organisasi atau koleksi ini. File yang ditentukan .npmrc
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.
customEndpoint
- Kredensial untuk registri di luar akun/koleksi ini
string
.
Daftar nama koneksi layanan npm yang dipisahkan koma untuk registri di luar organisasi atau koleksi ini. File yang ditentukan .npmrc
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.
Keterangan
Gunakan tugas ini untuk memberikan npm
kredensial ke .npmrc
file 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. Akankah
npmAuthenticate
disiapkannpm/gulp/Grunt
untuk menggunakan proksi saya? - Alur Saya perlu mengakses umpan dalam proyek yang berbeda
Bagaimana cara kerja tugas ini?
Tugas ini mencari file yang ditentukan .npmrc
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 yang ditentukan oleh customEndpoint
input, dan kredensial yang sesuai akan digunakan. File .npmrc
akan dikembalikan ke keadaan semula di akhir eksekusi alur.
Kapan dalam alur saya harus menjalankan tugas ini?
Tugas ini harus berjalan sebelum Anda menggunakan npm
, atau pelari npm
tugas, untuk menginstal atau mendorong paket ke repositori npm yang diautentikasi 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 .npmrc
file sekaligus. Jika Anda memerlukan autentikasi untuk beberapa .npmrc
file, Anda dapat menjalankan tugas beberapa kali, sekali untuk setiap .npmrc
file. Secara bergantian, pertimbangkan untuk membuat .npmrc
file yang menentukan semua registri yang digunakan oleh proyek Anda, berjalan npmAuthenticate
pada file ini .npmrc
, lalu mengatur variabel lingkungan untuk menunjuk file ini .npmrc
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. Akankah npmAuthenticate
disiapkan npm/gulp/Grunt
untuk menggunakan proksi saya?
Jawabannya adalah tidak. Meskipun tugas ini sendiri akan bekerja di belakang proksi web yang telah dikonfigurasi agen Anda untuk digunakan, tugas ini tidak mengonfigurasi npm
atau npm
menjalankan tugas untuk menggunakan proksi.
Untuk melakukannya, Anda dapat:
Atur variabel
http_proxy
/https_proxy
lingkungan dan secarano_proxy
opsional ke pengaturan proksi Anda. Lihat konfigurasi npm untuk detailnya. Perhatikan bahwa ini adalah variabel yang umum digunakan yang juga dapat digunakan oleh non-alatnpm
lain (misalnya curl).Tambahkan pengaturan proksi ke konfigurasi npm, baik secara manual, dengan menggunakan set konfigurasi npm, atau dengan mengatur variabel lingkungan yang diawali dengan
NPM_CONFIG_
.Hati:
npm
pelari 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 yang diautentikasi.
- 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
npm
paket untuk proyek Anda dari registri dalam organisasi Anda - Memulihkan dan menerbitkan
npm
paket di luar organisasi Anda - npmrc
- npm
Memulihkan npm
paket untuk proyek Anda dari registri dalam organisasi Anda
Jika satu-satunya registri terautentikasi yang .npmrc
Anda gunakan adalah registri Azure Artifacts di organisasi Anda, Anda hanya perlu menentukan jalur ke file ke tugas tersebut 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 npm
paket di luar organisasi Anda
Jika Anda .npmrc
berisi registri Azure Artifacts dari organisasi lain atau menggunakan repositori paket terautentikasi pihak ketiga, Anda harus menyiapkan koneksi layanan npm dan menentukannya dalam customEndpoint
input.
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
- 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 di file yang ditentukan .npmrc
.
Persyaratan
Persyaratan | Deskripsi |
---|---|
Jenis alur | YAML, Build klasik, Rilis klasik |
Berjalan pada | Agen, DeploymentGroup |
Permintaan | Tidak ada |
Kemampuan | Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan. |
Pembatasan perintah | Apa pun |
Variabel yang dapat diatur | Apa pun |
Versi agen | 2.115.0 atau lebih tinggi |
Kategori tugas | Paket |