Rumah >hujung hadapan web >tutorial js >Penyelesaian Mono Repository dalam Industri dan Amalan PNPM dalam ReactPress
? Selamat datang ke ReactPress!
Terima kasih kerana menunjukkan minat dalam projek kami! Jika anda mendapati ReactPress membantu atau jika anda ingin menyokong kerja kami, sila pertimbangkan untuk memberi kami ? Bintang! Ia membantu kami memperoleh lebih keterlihatan dan menarik lebih ramai penyumbang dan pengguna.
? Klik di sini untuk Bintangkan Projek Sekarang! ?
Dalam landskap pembangunan perisian hari ini, Mono Repository (Monorepo) telah muncul sebagai pendekatan popular untuk pengurusan kod, terutamanya dalam projek berskala besar dan kerjasama merentas pasukan. Artikel ini mula-mula akan memperkenalkan beberapa penyelesaian Monorepo arus perdana dalam industri dan kemudian menyelidiki sebab projek ReactPress memilih PNPM sebagai alat pengurusan pakejnya, disertai dengan contoh kod yang berkaitan dan cerapan teknikal yang mendalam.
Repositori Mono ialah satu cara untuk menyimpan kod berbilang projek dalam satu repositori. Berbanding dengan Multi Repository (Multirepo), Monorepo menawarkan kelebihan seperti penggunaan semula kod yang mudah, pengurusan pergantungan yang dipermudahkan dan kerjasama merentas pasukan yang lebih lancar. Berikut ialah beberapa penyelesaian Monorepo arus perdana:
Bazel, alat binaan dan ujian sumber terbuka yang dibangunkan oleh Google, secara semula jadi menyokong model Monorepo. Bazel mentakrifkan peraturan binaan untuk projek melalui fail BUILD, membolehkan pengurusan cekap dan membina berbilang modul dalam Monorepo.
Lerna ialah alat pengurusan Monorepo dalam komuniti JavaScript yang menyokong pengurusan berbilang pakej npm dalam satu repositori. Lerna menyediakan arahan seperti bootstrap dan terbitkan, memudahkan tugas seperti memaut dan menerbitkan pakej dalam persekitaran Monorepo.
Bolt, dibangunkan oleh Salesforce, ialah alat untuk mengurus Monorepos yang menyokong berbilang bahasa pengaturcaraan. Ia menyediakan satu set alat baris arahan untuk memudahkan pengurusan Monorepo. Bolt juga menawarkan ciri seperti suntikan pergantungan dan pengurusan konfigurasi, meningkatkan fleksibiliti dan kebolehselenggaraan Monorepos.
Yarn, alat pengurusan pakej JavaScript yang dilancarkan oleh Facebook, menyokong Monorepos melalui ciri Ruang Kerjanya. Ruang Kerja Benang secara automatik mengendalikan kebergantungan silang pakej dan mengoptimumkan proses pemasangan untuk meningkatkan kecekapan binaan.
ReactPress ialah platform penerbitan sumber terbuka berdasarkan React yang menyokong pengurusan blog, pembacaan artikel, penyesuaian mudah alih, komponenisasi, pengantarabangsaan, penukaran tema dan banyak lagi. Projek ReactPress memilih PNPM sebagai alat pengurusan pakejnya kerana beberapa kelebihan utama PNPM:
PNPM menggunakan pautan keras dan pautan simbolik untuk mencapai kandungan pakej kongsi, mengelakkan pemasangan versi pakej yang sama beberapa kali. Ini menjadikan PNPM jauh lebih cekap storan daripada npm dan Benang, terutamanya dalam projek Monorepo yang besar, di mana ia boleh mengurangkan penggunaan ruang storan dengan ketara.
PNPM menggunakan storan beralamat kandungan, mengenal pasti kandungan pakej secara unik melalui nilai cincang. Ini membolehkan PNPM menyalin terus kandungan daripada storan tempatan semasa pemasangan, tanpa memuat turunnya daripada repositori jauh. Selain itu, PNPM menyokong pemasangan selari dan kemas kini tambahan, meningkatkan lagi kelajuan pemasangan.
PNPM menyediakan keupayaan pengurusan pergantungan yang ketat, menjana fail kunci secara automatik (seperti pnpm-lock.yaml) untuk merekodkan versi kebergantungan projek yang tepat. Ini membantu memastikan konsistensi merentas persekitaran yang berbeza dan mengelakkan isu pembinaan yang disebabkan oleh versi pergantungan yang tidak konsisten.
Seterusnya, kami akan menunjukkan amalan PNPM dalam projek ReactPress melalui contoh kod.
Pertama, kita perlu mengklon repositori ReactPress daripada GitHub. Anda boleh menggunakan arahan berikut:
git clone https://github.com/fecommunity/reactpress.git cd reactpress
Jika PNPM belum dipasang pada sistem anda, anda boleh memasangnya menggunakan arahan berikut:
npm install -g pnpm
Dalam direktori akar projek, jalankan arahan berikut untuk memasang kebergantungan yang diperlukan untuk projek:
pnpm install
PNPM akan menyelesaikan dan memasang semua kebergantungan secara automatik dalam projek berdasarkan fail package.json dan pnpm-workspace.yaml.
Projek ReactPress menggunakan pangkalan data MySQL untuk menyimpan data. Sebelum memulakan projek, pastikan perkhidmatan pangkalan data MySQL berjalan dan cipta pangkalan data dan jadual yang sepadan mengikut tetapan dalam fail konfigurasi .env.
Contoh fail konfigurasi .env adalah seperti berikut:
DB_HOST=127.0.0.1 # Database address DB_PORT=3306 # Port DB_USER=reactpress # Username DB_PASSWD=reactpress # Password DB_DATABASE=reactpress # Database name
Selepas memasang kebergantungan dan mengkonfigurasi pembolehubah persekitaran, anda boleh menjalankan arahan berikut untuk memulakan projek ReactPress:
git clone https://github.com/fecommunity/reactpress.git cd reactpress
Setelah projek dimulakan, anda boleh membuka penyemak imbas dan melawati http://localhost:3000 (atau port yang dikonfigurasikan dalam fail .env) untuk melihat halaman log masuk atau pendaftaran ReactPress.
Projek ReactPress menggunakan reka bentuk pemisahan bahagian hadapan dan belakang. Bahagian hadapan menggunakan rangka kerja React dan NextJS, manakala bahagian belakang menggunakan rangka kerja NestJS. Struktur projek adalah lebih kurang seperti berikut:
npm install -g pnpm
Dalam kod bahagian hadapan, ReactPress menggunakan model pembangunan berasaskan komponen, dengan setiap komponen adalah bebas dan boleh digunakan semula. Dengan keupayaan pengurusan pakej PNPM, mudah untuk menambah, mengubah suai atau memadam komponen untuk memenuhi keperluan projek yang berubah-ubah.
Dalam kod bahagian belakang, ReactPress menggunakan rangka kerja NestJS untuk membina aplikasi sebelah pelayan yang cekap. NestJS menyediakan reka bentuk modular, suntikan kebergantungan dan ciri lain, menjadikan kod bahagian belakang lebih jelas dan lebih mudah diselenggara.
Sebagai platform penerbitan sumber terbuka berdasarkan React, ReactPress melaksanakan pengurusan kod dan pergantungan yang cekap melalui penggunaan amalan Monorepo dan PNPM. Penyimpanan PNPM yang cekap, pemasangan pantas, dan keupayaan pengurusan pergantungan yang ketat memberikan sokongan yang kuat untuk pembangunan projek ReactPress. Memandangkan projek ReactPress terus berkembang dan berkembang pada masa hadapan, adalah dipercayai bahawa PNPM akan memainkan peranan yang semakin penting.
Melalui pengenalan dan contoh kod dalam artikel ini, pembaca boleh memahami aplikasi dan amalan penyelesaian Monorepo dan PNPM dalam projek ReactPress. Kami berharap kandungan ini akan memberikan rujukan dan pandangan yang berguna untuk pembaca dalam projek berskala besar dan kerjasama merentas pasukan.
Atas ialah kandungan terperinci Penyelesaian Mono Repository dalam Industri dan Amalan PNPM dalam ReactPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!