Rumah > hujung hadapan web > tutorial js > Tuan rumah, menerbitkan dan mengurus pakej NPM peribadi dengan Verdaccio

Tuan rumah, menerbitkan dan mengurus pakej NPM peribadi dengan Verdaccio

Jennifer Aniston
Lepaskan: 2025-02-17 09:39:15
asal
760 orang telah melayarinya

Verdaccio: Alat yang berkuasa untuk pengurusan mudah pakej NPM swasta

Host, Publish and Manage Private npm Packages with Verdaccio

mata teras

    Verdaccio adalah alternatif percuma untuk perkhidmatan, penerbitan, dan perkhidmatan pengurusan Pakej Peribadi NPM. Ia membolehkan penciptaan pendaftaran NPM tempatan tanpa sebarang konfigurasi dan dilengkapi dengan pangkalan data sendiri.
  • Verdaccio bertindak sebagai pelayan cache/proksi tempatan, dan apabila kebergantungan tidak terdapat dalam repositori adat, mereka dimuat turun dari pendaftaran NPM rasmi dan disimpan dalam folder penyimpanan tempatan. Ia juga menyokong penciptaan pakej peribadi tempatan.
  • Verdaccio mudah dipasang dan mengkonfigurasi dan boleh ditetapkan untuk memulakan semula secara automatik dalam kemalangan sekali -sekala. Ia juga membolehkan pengguna mendaftar untuk menerbitkan pakej.
  • Selain menganjurkan pakej peribadi, Verdaccio juga cache pakej awam. Ia menyemak sama ada terdapat pakej yang diminta dalam folder penyimpanannya, dan jika ia tidak dapat dijumpai, meneruskan permintaan kepada pendaftaran NPM rasmi untuk memuat turun, menyimpan dan membalas permintaan itu. Ini bermakna bahawa walaupun pendaftaran rasmi turun, versi cache masih boleh diakses.
  • Artikel ini dikaji semula oleh Panayiotis «Pvgr» Velisarakos dan Jurgen van de Moere. Terima kasih kepada semua pengulas rakan sebaya untuk membuat kandungan SitePoint sempurna!

seperti yang kita semua tahu, NPM dan pendaftarannya adalah pengurus pakej de facto JavaScript dan koleksi kod terbesar di dunia. Tetapi kadang -kadang apabila membangunkan pakej baru yang menakjubkan, anda memerlukan privasi tambahan. Sama ada projek syarikat (yang tidak boleh dikongsi secara terbuka), projek tesis Sarjana/Sarjana Muda, atau hanya kerana anda, seperti saya, kadang -kadang berasa malu dengan percubaan awal anda pada topik baru.

Host, Publish and Manage Private npm Packages with Verdaccio Atas sebab apa pun, terdapat banyak pilihan. Mungkin cara paling mudah ialah mendaftarkan perkhidmatan perniagaan untuk NPM dan kemudian anda boleh memulakannya. Tetapi ini memerlukan bayaran dan mungkin tidak sesuai untuk dompet semua orang.

bernasib baik, terdapat alternatif percuma yang dipanggil Verdaccio yang dapat membantu anda.

Pengenalan kepada Verdaccio

Verdaccio adalah pakej NPM yang membolehkan anda membuat pendaftaran NPM tempatan tanpa sebarang konfigurasi. Ini adalah projek dengan semua fungsi yang diperlukan, dengan pangkalan data sendiri. Ia melakukan ini dengan bertindak sebagai pelayan cache/proksi tempatan.

Ini bermakna bahawa setiap kali anda cuba memasang sesuatu yang tidak wujud dari repositori tersuai, ia mengemukakan pendaftaran NPM rasmi dan memuat turun dependensi. Repositori tersuai anda menjimatkan kebergantungan ini dalam folder mudah yang dipanggil penyimpanan. Pemasangan seterusnya akan menggunakan salinan cache tempatan ini. Paling penting, beberapa arahan dari pelanggan NPM, seperti NPM Login/Adduser/Publish, disalin untuk menyokong penciptaan pakej swasta tempatan, yang akan anda lihat kemudian dalam artikel ini.

Jika anda fikir ini bukan sesuatu yang baru, sudah ada Sinopia, anda betul. Verdaccio hanyalah garpu Sinopia yang mengekalkan keserasian ke belakang, tetapi pada masa yang sama cuba untuk mengikuti perubahan dalam NPM rasmi. Salah satu perubahan yang tidak terdapat di Sinopia adalah pakej skop, yang mungkin anda lihat sebelum menggunakan perpustakaan seperti Angular 2 atau jenis hosting NPM TypeScript. Anda boleh dengan mudah mengenalinya dengan simbol @ yang terdahulu:

<code># 安装 Angular2 依赖项
npm install @angular/core

# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Sinopia dan Verdaccio kedua -duanya boleh didapati di Mac/Linux dan Windows.

pemula Verdaccio

Sejak Verdaccio adalah pakej NPM, anda boleh memasangnya hanya dengan menjalankan arahan berikut:

<code>npm install -g verdaccio</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

kemudian memanggil Verdaccio akan memulakan contoh dan menjalankan pendaftaran peribadi anda.

Secara lalai, ia akan mendengar di port 4873. Kami akan membincangkan cara mengubah tetapan ini kemudian.

Dalam artikel ini, kami akan memperkenalkan penyediaan pendaftaran pada mesin pembangunan anda. Dalam persekitaran korporat, anda mungkin perlu melakukan ini pada pelayan yang berdedikasi supaya ia dapat diakses oleh semua pemaju.

Verdaccio adalah aplikasi Node.js, yang bermaksud anda harus berhati -hati untuk memulakannya semula apabila anda terhempas. Saya cadangkan menggunakan PM2. Anda hanya perlu menjalankan langkah -langkah berikut:

<code># 安装 pm2
npm install pm2 -g

# 使用 pm2 启动 Verdaccio
pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio
# --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>
Salin selepas log masuk
Salin selepas log masuk

Di samping itu, jika selepas membaca artikel ini, anda membuat kesimpulan bahawa Verdaccio tidak sesuai untuk anda, hentikan proses dan nyahpasang Verdaccio dengan perintah berikut:

<code>npm uninstall -g verdaccio</code>
Salin selepas log masuk
Salin selepas log masuk

Konfigurasi klien

Apabila pendaftaran berjalan dan berjalan, anda perlu menunjuk klien NPM ke alamat baru. Ini boleh dilakukan dengan menjalankan arahan berikut:

<code>npm set registry https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d/</code>
Salin selepas log masuk

Jika anda hanya mengikuti langkah -langkah dalam artikel ini dan ingin memulihkan ke pendaftaran NPM yang asal kemudian, cuma jalankan perintah ini NPM Set Registry https://www.php.cn/link/C0AB525D634E80FD8E20E3D6DC00B111C Untuk akses berasaskan https) atau NPM set registry https://www.php.cn/link/6baadc89159617043965f9e1889224e7 (untuk akses http klasik).

Di samping itu, jika anda menyediakan perkhidmatan pendaftaran melalui HTTPS, anda perlu menyediakan maklumat CA yang sesuai.

<code># 将值设置为 null 将使用操作系统提供的列表
npm set ca null</code>
Salin selepas log masuk

Anda kini boleh mengakses pelayar pendaftaran dengan menavigasi ke alamat https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d .

Host, Publish and Manage Private npm Packages with Verdaccio

Konfigurasi Registry Custom

Apabila pelayan bermula, fail konfigurasi baru bernama config.yaml dibuat secara automatik. Secara lalai, ia akan dibuat dalam folder pengguna anda. Di Windows, ini mungkin kelihatan seperti ini:

<code>C:\Users\[USERNAME]\.config\verdaccio\config.yaml</code>
Salin selepas log masuk
Tetapan penting adalah untuk mengkonfigurasi port lalai untuk mendengar Verdaccio. Anda boleh menukar tetapan ini dengan menambahkan baris berikut pada akhir fail konfigurasi.

<code># 安装 Angular2 依赖项
npm install @angular/core

# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Satu lagi penentuan minat mungkin menggunakan proksi, terutama dalam persekitaran korporat. Tetapan ini adalah seperti berikut:

<code>npm install -g verdaccio</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

ingat, selepas menukar sebarang konfigurasi, mulakan semula Verdaccio dengan membunuh proses semasa atau menghentikan proses PM2 dan memulakannya semula.

Pengguna berdaftar

Terakhir tetapi tidak kurang, kita perlu mengkonfigurasi pengguna yang menerbitkan pakej ke pendaftaran anda. Kami boleh melakukan ini menggunakan perintah AddUser lalai, yang menunjuk kepada pendaftaran tersuai kami.

<code># 安装 pm2
npm install pm2 -g

# 使用 pm2 启动 Verdaccio
pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio
# --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>
Salin selepas log masuk
Salin selepas log masuk
Selepas itu, ikuti arahan pada baris arahan.

ingat untuk menggunakan port yang sama yang anda konfigurasi sebelum ini.

Pengguna ini akan digunakan untuk mengesahkan contoh Verdaccio. Sebagai tambahan kepada fail config.yaml yang disebutkan di atas, anda juga akan menemui fail HTPasswd yang baru dibuat untuk menyimpan nama dan kelayakan log masuk anda.

pakej npm peribadi pertama anda

Sekarang, kami sudah bersedia untuk membuat pakej peribadi pertama kami. Kami akan membuat pakej Hello-World yang mudah dan melihat proses menerbitkannya.

Buat pakej

Pertama, buat folder baru yang dipanggil Hello-World di suatu tempat. Sekarang, kita perlu memulakan pakej baru, dan kami menggunakan perintah NPM init untuk melakukan ini. Anda akan ditanya banyak soalan, tetapi sekarang, kebanyakan soalan menerima nilai lalai. Hanya berikan deskripsi, simpan titik masuk dalam index.js dan tambahkan nama anda sebagai penulis. Hasilnya ialah fail yang dipanggil Package.json yang menerangkan pakej anda.

Amalan yang baik adalah untuk awalan nama pakej anda supaya anda dapat memberitahu dengan segera sama ada anda menggunakan sumber tempatan peribadi atau sumber NPM rasmi.

Bahagian seterusnya adalah membuat pakej sebenar. Oleh itu, kami membuat fail index.js. Contoh mudah ini hanya akan mengeksport fungsi Helloworld:

<code>npm uninstall -g verdaccio</code>
Salin selepas log masuk
Salin selepas log masuk
Pakej Siaran

selebihnya kini melepaskan pakej anda. Untuk melakukan ini, kita perlu menggunakan log masuk NPM untuk log masuk ke pendaftaran kami. Anda akan diminta untuk memasukkan nama pengguna dan kata laluan yang anda tetapkan sebelumnya.

Setelah menyelesaikan operasi ini, hanya jalankan NPM Terbitkan dalam direktori root Hello-World untuk menyelesaikan operasi.

Jika anda kini mengakses pelayar pendaftaran di penyemak imbas anda sekali lagi, terletak di

https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d/, anda akan melihat bahawa senarai baru .

Host, Publish and Manage Private npm Packages with Verdaccio Contoh Aplikasi Pengguna

Sekarang bahawa kami telah menerbitkan pakej peribadi kami, mari buat aplikasi demo mudah untuk menggunakannya.

Dalam demo folder baru, kami menggunakan NPM Init sekali lagi untuk membuat aplikasi nod baru. Sekali lagi, terima semua cadangan, mungkin hanya menambah keterangan dan maklumat pengarang.

Selepas

, buat fail index.js yang akan bertindak sebagai direktori root permohonan kami.

memasang pakej peribadi anda

Untuk memasang pakej peribadi, anda pada dasarnya perlu melakukan perkara yang sama seperti proses NPM standard.

<code># 安装 Angular2 依赖项
npm install @angular/core

# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ini memasang pakej ke dalam folder node_modules anda dan mengemas kini bahagian kebergantungan pakej.json.

Sekarang kita boleh menggunakan pakej tersebut. Buka index.js dan tambahkan kod berikut:

<code>npm install -g verdaccio</code>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Sekarang, apabila anda menjalankan aplikasi anda menggunakan node index.js, anda harus melihat Hello World sebagai output pada baris arahan.

Tahniah, anda hanya menyiarkan dan menggunakan pakej peribadi anda sendiri!

meminta pakej awam

Sama berlaku untuk pakej awam. Anda hanya terus menjalankan NPM memasang nama pakej dan segala-galanya akan dipasang di folder Node_Modules seperti biasa.

Apa yang Verdaccio lakukan di belakang tabir adalah untuk memeriksa folder penyimpanannya dan periksa sama ada pakej yang diminta wujud. Sekiranya ia tidak wujud, ia akan cuba mengemukakan permintaan kepada pendaftaran NPM rasmi, memuat turun dan menyimpannya, dan kemudian balas permintaan anda. Kali berikutnya anda membuat permintaan pemasangan NPM untuk pakej yang sama, ia kini akan memberikan pakej.

Jadi, walaupun pendaftaran rasmi turun atau tidak boleh diakses atas apa -apa sebab, anda masih boleh mengakses versi cache anda sendiri. Verdaccio akan sentiasa memuat turun kandungan yang diminta. Jika anda menyiarkan beberapa kemas kini, anda akan memuat turunnya seperti yang diperlukan.

Sila ambil perhatian bahawa pelayar pendaftaran tidak boleh memaparkan pakej awam. Jika anda perlu memaparkannya, anda boleh mengedit fail .sinopia-db.json dan tambahkan nama pakej secara manual ke array senarai. Jangan lupa untuk memulakan semula Verdaccio selepas itu.

Kesimpulan

Jadi sekarang anda boleh menjadi tuan rumah pendaftaran peribadi anda sendiri dan mendapat manfaat daripada pakej awam yang di -cache. Paling penting, anda kini boleh menerbitkan pakej peribadi tanpa perlu berkomunikasi dengan awan. Selepas pemasangan selesai, semua arahan pelanggan NPM yang berkaitan adalah sama seperti biasa.

Dalam keadaan gila di mana beberapa pakej anda rosak atau rosak, ingat bahawa ia hanya sebuah kedai folder yang menganjurkan pakej anda, jadi navigasi di sana dan padamkan pakej yang rosak. Pemasangan seterusnya boleh menyelesaikan masalah anda.

Saya harap anda menikmati jawatan ini dan berharap dapat mendengar anda dalam komen!

Soalan Lazim (FAQ) Mengenai Menggunakan Pakej NPM Persendirian Verdaccio

Apa itu Verdaccio dan mengapa saya harus menggunakannya untuk pakej NPM peribadi saya?

Verdaccio adalah sumber terbuka, ringan, dan pendaftaran NPM swasta yang kuat yang membolehkan anda menjadi tuan rumah secara peribadi pakej NPM anda sendiri. Ini adalah alat yang hebat untuk pemaju yang ingin mengawal kod dan kebergantungan mereka. Verdaccio menyediakan cara yang selamat dan cekap untuk menguruskan pakej NPM, membolehkan anda untuk pakej cache, mengendalikan akses, dan juga menggunakannya sebagai pilihan sandaran apabila pendaftaran NPM utama turun.

bagaimana memasang Verdaccio pada sistem saya?

Memasang Verdaccio sangat mudah. Anda perlu memasang Node.js dan NPM pada sistem anda. Selepas pemasangan selesai, anda boleh menggunakan arahan pemasangan NPM untuk memasang Verdaccio: NPM Install -G Verdaccio. Ini akan memasang Verdaccio secara global pada sistem anda.

Bagaimana untuk menerbitkan pakej NPM peribadi saya menggunakan Verdaccio?

Selepas memasang Verdaccio, anda boleh menerbitkan pakej NPM peribadi anda dengan log masuk pertama ke pendaftaran Verdaccio anda menggunakan arahan log masuk NPM. Anda akan diminta untuk nama pengguna, kata laluan, dan e -mel anda. Sebaik sahaja log masuk, navigasi ke direktori pakej anda dan siarkan pakej anda menggunakan arahan NPM Publish.

Bagaimana saya mengawal akses ke pakej NPM peribadi saya di Verdaccio?

Verdaccio membolehkan anda mengawal akses ke pakej NPM peribadi melalui fail konfigurasinya config.yaml. Anda boleh menentukan siapa yang boleh mengakses, menerbitkan, dan pakej tidak diterbitkan. Anda juga boleh membuat kumpulan pengguna dan memberikan kebenaran kepada mereka.

Bolehkah saya menggunakan Verdaccio sebagai cache untuk pakej NPM awam?

Ya, Verdaccio boleh bertindak sebagai proksi dan cache untuk pakej NPM awam. Ini bermakna apabila anda memasang pakej, Verdaccio terlebih dahulu akan memeriksa sama ada ia tersedia dalam storannya. Jika tidak tersedia, ia akan mengambilnya dari pendaftaran NPM awam dan cache untuk kegunaan masa depan.

Bagaimana untuk mengkonfigurasi Verdaccio untuk menggunakannya sebagai pilihan sandaran?

Anda boleh mengkonfigurasi Verdaccio untuk bertindak sebagai pilihan sandaran dengan menetapkannya sebagai pendaftaran utama anda dalam fail .npmrc. Dengan cara ini, apabila pendaftaran NPM utama turun, NPM akan menggunakan Verdaccio secara automatik.

Bolehkah saya mengintegrasikan Verdaccio dengan alat lain?

Ya, Verdaccio boleh diintegrasikan dengan pelbagai alat seperti Docker, Kubernetes, dan Gitlab. Ini menjadikannya alat sejagat yang boleh menyesuaikan diri dengan pelbagai aliran kerja pembangunan yang berbeza.

Bagaimana untuk memindahkan pakej saya ke Verdaccio?

Memindahkan pakej anda ke Verdaccio semudah menerbitkannya ke pendaftaran Verdaccio. Anda boleh melakukan ini dengan log masuk ke pendaftaran Verdaccio anda dan menggunakan arahan NPM Publish.

Bolehkah saya menggunakan Verdaccio dalam persekitaran pasukan?

Sudah tentu. Verdaccio direka untuk bekerja dalam persekitaran pasukan. Anda boleh mengawal siapa yang boleh mengakses pakej mana, menjadikannya alat yang hebat untuk kerjasama.

Bagaimana menyumbang kepada Verdaccio?

Verdaccio adalah projek sumber terbuka, dan sumbangan dialu -alukan pada bila -bila masa. Anda boleh menyumbang dengan melaporkan kesilapan, mencadangkan ciri, meningkatkan dokumentasi, atau mengemukakan permintaan tarik.

Atas ialah kandungan terperinci Tuan rumah, menerbitkan dan mengurus pakej NPM peribadi dengan Verdaccio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan