Bagikan melalui


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?

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 secara no_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 oleh npm.

  • 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

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