mata teras
Asas
Pada masa lalu, editor teks mudah sudah cukup untuk pemaju untuk membuat dan menguruskan kebanyakan projek. Tetapi sekarang, Internet telah mengalami perubahan bumi. Sekarang, walaupun projek yang agak mudah boleh mengandungi beratus -ratus atau bahkan ribuan skrip, serta kebergantungan bersarang yang kompleks yang tidak dapat diuruskan tanpa beberapa jenis alat automasi. Di sinilah pengurus pakej dimainkan.Pengurus Pakej adalah alat yang secara automatik mengendalikan kebergantungan projek dengan pelbagai cara. Sebagai contoh, dengan pengurus pakej, kami boleh memasang, menyahpasang, mengemas kini dan menaik taraf pakej, mengkonfigurasi tetapan projek, skrip lari, dan banyak lagi. Semua kerja yang membosankan dilakukan oleh pengurus pakej, kita hanya perlu memberi tumpuan kepada pengekodan itu sendiri.
NPM bermaksud Pengurus Pakej Node. Ia dikeluarkan pada tahun 2010, membuka era pembangunan web baru. Sebelum ini, kebergantungan projek telah dimuat turun dan diuruskan secara manual. NPM adalah tongkat yang memacu web ke tahap yang lebih tinggi.
npm sebenarnya mengandungi tiga bahagian:
benang bermaksud satu lagi perunding sumber. Pengurus Pakej Benang adalah alternatif kepada NPM, yang dikeluarkan oleh Facebook pada Oktober 2016. Matlamat awal Yarn adalah untuk menangani kekurangan NPM, seperti isu prestasi dan keselamatan. Benang dengan cepat menjadi alat pengurusan ketergantungan JavaScript yang selamat, cepat dan boleh dipercayai.
Tetapi pasukan NPM belajar pelajaran dan cepat dibuat untuk kekurangan NPM dengan melaksanakan ciri -ciri yang hilang.
mari kita cepat semak sejarah untuk memahami keadaan keseluruhan:
Kedua -dua pengurus pakej ini dapat dibandingkan dengan pertandingan pengurusan pakej dan menawarkan ciri -ciri yang serupa. Tetapi masih terdapat beberapa perbezaan yang membantu kita menentukan yang digunakan.
Di seluruh tutorial ini, kami akan meneroka persamaan utama dan perbezaan antara NPM dan Benang.
benang vs npm: perbandingan pemasangan
Kami akan bermula dengan proses pemasangan NPM dan Benang.
Seperti yang disebutkan di atas, NPM telah dipasang di nod, jadi tidak perlu memasang NPM secara manual.
Sebaliknya, benang perlu dipasang secara eksplisit. Pertama, kita perlu memasang benang:
npm install -g yarn
kita boleh menggunakannya secara per-projek dengan menjalankan arahan versi set benang dalam direktori root projek:
yarn set version berry
Dalam kes ini, Berry adalah versi yang kita mahu tetapkan.
Jika kita mahu mengemas kini versi terkini, kami menjalankan arahan berikut:
yarn set version latest
Dengan benang, kita boleh menggunakan versi yang berbeza untuk setiap projek.
Untuk melakukan perkara yang sama dengan NPM, anda perlu memasang NVM (Pengurus Versi Node). Berikut adalah cara memasang pelbagai versi nod menggunakan NVM.
Sekarang, mari kita lihat cara memasang kebergantungan projek.
Apabila kita menjalankan pemasangan NPM, kebergantungan dipasang pada gilirannya. Log output di terminal kaya dengan maklumat, tetapi mereka agak sukar dibaca.
Untuk menggunakan pakej pemasangan benang, kami menjalankan perintah benang. Pakej pemasangan selari benang, yang merupakan salah satu sebab mengapa ia lebih cepat daripada npm. Jika anda menggunakan benang 1, anda akan melihat bahawa log output benang adalah ringkas dan mudah dibezakan secara visual. Mereka juga disusun dalam bentuk pokok untuk pemahaman yang mudah. Tetapi dalam versi 2 dan 3, balak tidak begitu intuitif.
Setakat ini, kami telah melihat bahawa NPM dan Benang mempunyai arahan pakej pemasangan yang berbeza. Dalam bahagian seterusnya, kami akan meneroka lebih banyak arahan.
Bandingkan NPM dan Benang Perintah
npm dan benang berkongsi banyak arahan, tetapi terdapat beberapa arahan yang berbeza. Mari kita terlebih dahulu meneroka beberapa arahan yang sama:
NPM Install--Save-Dev [Package] |
NPM Uninstall [Pakej] |benang vs npm: perbandingan selamat
Salah satu kritikan utama NPM adalah mengenai keselamatan. Versi NPM sebelumnya mempunyai beberapa kelemahan keselamatan yang serius.
Sebagai versi 6, NPM mengaudit pakej semasa pemasangan dan memberitahu anda jika anda mendapati sebarang kelemahan. Kami boleh melakukan pemeriksaan ini secara manual dengan menjalankan audit NPM pada pakej yang dipasang. Sekiranya terdapat kelemahan, NPM akan memberi kami nasihat keselamatan.
Seperti yang ditunjukkan dalam angka di atas, kita boleh menjalankan NPM Audit Fix untuk memperbaiki kelemahan pakej, dan jika ia boleh diperbaiki, pokok pergantungan akan diperbaiki juga.
benang dan NPM kedua -duanya menggunakan algoritma hash cryptographic untuk memastikan integriti paket.
benang vs npm: perbandingan fungsi
Seperti arahan, NPM dan benang berkongsi beberapa ciri, tetapi terdapat beberapa perbezaan. Mari kita meneroka fungsi umum yang dikongsi oleh kedua -dua pengurus pakej ini.
Dalam Package.json (fail yang NPM dan Benang digunakan untuk mengesan kebergantungan projek), nombor versi tidak selalu tepat. Sebaliknya, anda boleh menentukan julat versi. Dengan cara ini, anda boleh memilih versi utama dan kecil pakej tertentu, tetapi membenarkan NPM memasang patch terkini yang boleh membetulkan beberapa pepijat.
Di dunia yang ideal versi semantik, versi patch tidak mengandungi sebarang perubahan penting. Tetapi malangnya, ini tidak selalu berlaku. Strategi yang digunakan oleh NPM boleh menyebabkan kedua -dua mesin berakhir dengan fail pakej.json yang sama, tetapi mempunyai versi yang berbeza dari pakej yang dipasang - ini mungkin memperkenalkan ralat.
Untuk mengelakkan ketidakcocokan versi pakej, versi tepat yang dipasang ditetapkan dalam fail kunci pakej. Setiap kali modul ditambah, npm dan benang membuat (atau mengemaskini) pakej-lock.json dan yarn.lock fail, masing-masing. Dengan cara ini, anda boleh memastikan bahawa mesin lain memasang pakej yang sama semasa masih menentukan satu siri versi yang dibenarkan dalam Package.json.
Ruang kerja membolehkan anda mempunyai monorepo untuk menguruskan kebergantungan dalam pelbagai projek. Ini bermakna anda mempunyai satu pakej akar peringkat atas yang mempunyai pelbagai subpackages yang dipanggil ruang kerja.
npx digunakan untuk menjalankan skrip dari ./node_modules/.bin. Ia juga membolehkan anda melaksanakan pakej dari pendaftaran NPM tanpa memasangnya ke dalam kebergantungan projek anda. Sebagai contoh, anda boleh membuat aplikasi React baru dengan menjalankan arahan berikut:
npm install -g yarn
Di benang, anda boleh menggunakan perintah dlx setara untuk mencapai hasil yang sama:
yarn set version berry
Selebihnya ciri -ciri yang akan kami pelajari adalah unik untuk benang.
Pemasangan sifar menyimpan cache dalam direktori projek anda, yang terletak di folder .yarn. Apabila anda menggunakan arahan seperti benang atau benang tambah
plug'n'play adalah strategi pemasangan alternatif. Benang tidak menghasilkan direktori Node_modules dan meninggalkan parsing ke nod, tetapi sebaliknya menghasilkan satu fail .pnp.cjs tunggal yang memetakan pakej ke lokasi pada cakera dan senarai dependensi. Ciri ini boleh mempercepat permulaan projek, mengoptimumkan pokok ketergantungan, mempercepatkan pemasangan, dan tentu saja menghapuskan keperluan untuk folder node_modules.
benang mempunyai pemeriksa lesen yang dibina, yang sangat berguna dalam senario yang berbeza ketika membangunkan aplikasi.
benang vs npm: Pengurus pakej mana yang hendak dipilih
Kami telah merangkumi pelbagai persamaan dan perbezaan antara NPM dan benang, tetapi kami belum menentukan yang mana lebih baik dan yang mana yang harus kita pilih. Seperti biasa, jawapannya bergantung kepada keinginan dan keperluan kita.
sebagai panduan umum, saya meringkaskan cadangan berikut:
Jika anda masih mempunyai masa yang sukar untuk membuat keputusan yang jelas antara npm dan benang, maka anda boleh menyemak PNPM, yang cuba menggabungkan kelebihan kedua -dua pengurus pakej ini dan merupakan gergasi ketiga terbesar di kolam pengurusan pakej.
benang vs npm: kesimpulan
Kami telah belajar tentang kepentingan pengurus pakej untuk pembangunan web moden dan kami membandingkan dua pesaing yang paling popular di pasaran. Mereka semua mempunyai kelebihan dan kekurangan mereka sendiri, dan untuk memilih yang sesuai dengan anda, anda perlu mempunyai pemahaman yang jelas tentang keperluan anda. Cara terbaik untuk menentukan mana yang lebih baik untuk anda adalah untuk mencuba kedua -duanya dan melihat mana yang lebih baik.
Akhir sekali, jangan terlalu overhin. Hanya pilih satu dan pergi ke bahagian yang menyeronokkan: Buat aplikasi yang hebat!
Soalan Lazim Mengenai Benang vs NPM
Adakah benang lebih cepat daripada npm?
Bagaimana keselamatan benang berbanding keselamatan NPM?
Bolehkah saya menggunakan benang dan npm dalam projek yang sama?
Bagaimana menangani kebergantungan dalam benang berbanding npm?
Adakah benang lebih dipercayai daripada npm?
npm mempunyai komuniti yang lebih besar dan lebih banyak pakej yang tersedia kerana kewujudannya yang lebih lama. Walau bagaimanapun, benang menjadi semakin popular dan mempunyai komuniti yang semakin meningkat.
Beberapa cabaran beralih dari NPM ke benang termasuk pembelajaran sintaks baru, memindahkan projek sedia ada, dan menyesuaikan diri dengan pengurusan ketergantungan ketat YARN.
sintaks benang sedikit berbeza daripada npm. Sebagai contoh, untuk menggunakan pakej pemasangan benang, anda boleh menggunakan arahan "benang tambah" dan dengan npm, anda boleh menggunakan "pemasangan npm".
NUM sering dianggap lebih mudah untuk pemula digunakan kerana sintaks yang lebih mudah dan komuniti yang lebih besar. Walau bagaimanapun, Benang menawarkan ciri -ciri yang lebih canggih dan merupakan pilihan yang baik untuk pemaju yang lebih berpengalaman.
Atas ialah kandungan terperinci Benang vs NPM: Semua yang anda perlu tahu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!