Dari npm ke benang ke pnpm – mengapa, apa dan bagaimana – Beragampengetahuan
Ada beberapa pengelola paket untuk proyek Node.js, beberapa di antaranya memiliki keunggulan dibandingkan yang lain. Saat ini, kami menggunakan benang dan menghadapi beberapa tantangan yang dapat diselesaikan dengan bermigrasi ke pnpm.
Karena kami memigrasikan semua proyek kami dari npm ke benang v1 (klasik), kami memiliki penyiapan pengembangan yang lebih kuat dan lebih cepat dengan lebih sedikit masalah daripada penyiapan berbasis npm. Sebelum ini, pengembang dan proyek sering menggunakan versi npm yang berbeda, yang juga menyebabkan perubahan besar, dan setiap versi memiliki file kunci yang berbeda. Ini menyebabkan banyak kasus di mana kita harus men-debug pengaturan pengembang.
Kami cukup senang dengan benang v1 (klasik) sejauh ini, dan tidak berencana untuk bermigrasi ke versi utama benang yang baru, karena ini hanya akan memperkenalkan fitur baru yang tidak kami perlukan. Dan fitur baru seperti benang PlugnPlay dapat membawa masalah baru.
Selain itu, kami memiliki banyak proyek dengan ketergantungan yang sama. Jadi file yang sama persis ada di beberapa lokasi. semua seutuhnya, node_modules Folder mengambil beberapa gigabyte ruang disk. Ini tidak ekonomis dan membuang-buang sumber daya.
Saya sudah tahu tentang pnpm, pengganti npm berkinerja tinggi, karena saya adalah pengelola proyek sumber terbuka dan bekerja di verdaccio.
Secara teknis, pnpm membuat pusat penyimpanan yang dapat dialamatkan konten yang berisi semua file, dan kemudian menempatkan file-file itu ke dalam folder node_modules, tetapi semua file ini adalah tautan keras ke file asli di penyimpanan itu. Jadi pada akhirnya file yang sama hanya ada sekali di disk, yang sangat mengurangi ruang disk yang digunakan.
Selain itu, tata letak folder node_modules sedikit berbeda dari pnpm. Hanya dependensi tingkat atas yang terdapat dalam folder ini. Ini berguna karena jika kita mencoba mengimpor dan menggunakan ketergantungan yang terkubur jauh di dalam kode kita, yang tidak terdaftar di file package.json tingkat atas, maka ini akan menimbulkan kesalahan. Ini mencegah kejutan ketika dependensi yang diimpor secara optimis dihapus dari dependensi bersarang dalam tanpa kita sadari.
Untuk benang v3 dan yang lebih baru, ada solusi serupa dengan mode linker pnpm, tetapi ini masih belum sepenuhnya diimplementasikan.
Jika Anda ingin tahu lebih banyak tentang berbagai solusi tautan dalam benang, periksa tautan berikut:
#new-install-mode-raw-pnpm-enddraw-
https://dev.to/arcanis/yarn-3-0-performances-esbuild-better-patches-e07 (tautan keras – global)
(penyambung pnpm)
https://dev.to/arcanis/yarn-32-libc-yarn-explain-next-major–o22
https://yarnpkg.com/getting-started/migration
Bermigrasi dari benang ke pnpm sangat mudah. Anda dapat mencoba salah satu rute berikut:
- entah kamu lari
pnpm importImpor dan konversi file kunci benang - Anda menghapus
yarn.lockfile dannode_modulesfolder dan jalankanpnpm install
Ini kemudian akan membuat file kunci baru pnpm-lock.yaml. Setelah itu file kunci lama dapat dihapus.
pnpm akan memberi tahu Anda setelah langkah instalasi jika ada masalah yang terdeteksi, seperti dependensi yang hilang atau salah, dan memberi Anda perintah yang relevan untuk memperbaikinya.ketika Anda membuat pnpm run start atau pnpm start dan proyek Anda melontarkan kesalahan karena dependensi yang hilang, maka Anda mungkin harus memeriksa dan menginstal dependensi tersebut juga.
Pada akhirnya, Anda akan memiliki penyiapan proyek yang lebih kuat dan lebih aman, penggunaan disk yang lebih rendah, dan pengalaman pengembang yang lebih baik. Sebagai bonus, fungsionalitas saat ini juga menggantikan beberapa dependensi bagi kami, misalnya, patch-package Digunakan untuk menambal dependensi di tempat.
Lakukan sesuatu yang baik untuk planet, keselamatan, dan anggota tim Anda. Sekarang pindah ke pnpm.
Contents
rencana pengembangan website
metode pengembangan website
jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website
#Dari #npm #benang #pnpm #mengapa #apa #dan #bagaimana