Rumah > hujung hadapan web > tutorial js > Benang vs NPM: Semua yang anda perlu tahu

Benang vs NPM: Semua yang anda perlu tahu

Jennifer Aniston
Lepaskan: 2025-02-09 09:28:13
asal
396 orang telah melayarinya

Yarn vs npm: Everything You Need to Know

Artikel ini akan menyelam ke dalam dua pengurus pakej JavaScript yang popular, benang dan NPM, dan membandingkan kebaikan dan keburukan masing -masing untuk membantu anda memilih alat yang tepat untuk projek anda.

mata teras

    benang dan NPM adalah kedua -dua pengurus pakej popular, masing -masing dengan kelebihan dan kekurangan mereka. Benang, yang dibangunkan oleh Facebook, lebih cepat, lebih selamat, dan lebih dipercayai dalam pengurusan ketergantungan. Sebagai pengurus pakej lalai untuk Node.js, NPM mempunyai pangkalan pengguna yang lebih besar, dan sintaks yang lebih mudah lebih mudah untuk pemula digunakan.
  • pakej pemasangan selari benang, biasanya lebih cepat daripada NPM (pakej pemasangan berurutan). Walau bagaimanapun, versi terkini kedua -dua pengurus pakej ini berada pada kelajuan yang sama.
  • Dari segi keselamatan, Benang menggunakan cek untuk mengesahkan integriti setiap pakej yang dipasang sebelum melaksanakan kod pakej. NPM juga telah membuat penambahbaikan yang ketara terhadap ciri -ciri keselamatannya dalam siaran baru -baru ini, termasuk audit pakej semasa pemasangan.
  • Benang menawarkan ciri-ciri unik seperti plug'n'play, pemasangan sifar dan pemeriksa lesen terbina dalam. Walau bagaimanapun, ia memerlukan lebih banyak ruang cakera daripada npm. Pilihan antara benang dan NPM harus berdasarkan keperluan individu dan keutamaan aliran kerja.

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:

    A
  • laman web untuk menguruskan semua aspek pengalaman NPM; A
  • Pendaftaran
  • untuk mengakses pangkalan data JavaScript awam yang besar; A (CLI) untuk berinteraksi dengan NPM melalui terminal.
  • Tetapi apabila kebanyakan orang bercakap tentang npm, mereka biasanya merujuk kepada yang terakhir - alat CLI. Ia disediakan sebagai pengurus pakej lalai dengan setiap pemasangan nod baru. Ini bermakna anda boleh mula menggunakannya dengan segera.
  • Jika anda ingin menggali cara menggunakan NPM, lihat panduan Pengurus Pakej Node kami.

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:

  • 2010: NPM Dikeluarkan, Menyokong Node.
  • 2016: Diterbitkan oleh benang. Ia menunjukkan prestasi yang lebih tinggi daripada npm. Ia juga menghasilkan fail benang, membuat perkongsian dan replikasi tepat repositori lebih mudah dan lebih diramalkan.
  • 2017: NPM 5 Dikeluarkan. Ia menyediakan penjanaan fail pakej-lock.json secara automatik sebagai tindak balas kepada benang.
  • 2018: NPM 6 dikeluarkan, penambahbaikan keselamatan. NPM kini memeriksa kelemahan keselamatan sebelum memasang kebergantungan.
  • 2020: Benang 2 dan NPM 7 Siaran. Kedua -dua pakej mempunyai ciri -ciri baru yang kuat, yang akan kita lihat kemudian dalam tutorial ini.
  • 2021: Benang 3 Dikeluarkan dengan pelbagai penambahbaikan.

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.

Memasang Pengurus Pakej itu sendiri

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
Salin selepas log masuk
Salin selepas log masuk

kita boleh menggunakannya secara per-projek dengan menjalankan arahan versi set benang dalam direktori root projek:

yarn set version berry
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk

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.

Memasang kebergantungan projek

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 init |.
  • npm run |.
  • ujian npm |.
  • NPM Publish |.
  • Cache NPM Bersih |
  • Perintah ini menjadikannya mudah untuk beralih antara dua pengurus, tetapi terdapat beberapa arahan yang berbeza yang boleh mengelirukan. Mari lihat apa yang mereka ada dalam senarai seterusnya:
  • NPM Pasang |.
Pemasangan NPM [Pakej] |

NPM Install--Save-Dev [Package] |

NPM Uninstall [Pakej] |
    NPM Uninstall--Save-Dev [Package] |
  • NPM UPDATE |.
  • kemas kini npm [pakej] |
  • benang juga mempunyai beberapa arahan unik yang tidak ada NPM. Sebagai contoh, Kenapa Perintah menunjukkan mengapa pakej diperlukan: ia boleh menjadi kebergantungan, modul tempatan, atau kebergantungan projek.
  • benang vs npm: kelajuan dan prestasi
  • Setiap kali benang atau NPM perlu memasang pakej, mereka melakukan satu siri tugas. Di NPM, tugas -tugas ini dilakukan oleh pakej, yang bermaksud bahawa ia akan terus menjadi pakej seterusnya selepas satu pakej dipasang sepenuhnya. Sebaliknya, benang melakukan tugas -tugas ini selari, dengan itu meningkatkan prestasi.
  • Walaupun kedua -dua pengurus menyediakan mekanisme caching, benang nampaknya sedikit lebih baik. Dengan melaksanakan paradigma pemasangan sifar (yang akan kita lihat dalam bahagian perbandingan ciri), ia dapat memasang pakej dengan segera. Ia cache setiap pakej dan menyimpannya pada cakera, jadi pada masa akan datang anda memasang pakej ini, anda tidak memerlukan sambungan internet kerana pakej dipasang di luar talian dari cakera.
  • Walaupun benang mempunyai beberapa kelebihan, dalam versi terkini, Benang dan NPM berada pada kelajuan yang setanding. Oleh itu, kita tidak dapat menentukan pemenang yang jelas di sini.

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.

Menjana fail terkunci

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.

menggunakan ruang kerja

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.

Jalankan skrip dari jauh

Perintah

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
Salin selepas log masuk
Salin selepas log masuk

Di benang, anda boleh menggunakan perintah dlx setara untuk mencapai hasil yang sama:

yarn set version berry
Salin selepas log masuk
Salin selepas log masuk

Selebihnya ciri -ciri yang akan kami pelajari adalah unik untuk benang.

Pemasangan Zero

Pemasangan sifar menyimpan cache dalam direktori projek anda, yang terletak di folder .yarn. Apabila anda menggunakan arahan seperti benang atau benang tambah , benang membuat fail .pnp.cjs. Fail ini mengandungi nod hierarki ketergantungan yang digunakan untuk memuatkan pakej projek. Jadi anda boleh mengaksesnya dengan segera.

plug'n'play

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.

had

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 berpuas hati dengan aliran kerja semasa anda, tidak mahu memasang alat lain, dan mempunyai ruang cakera yang tidak mencukupi, pilih NPM.
  • Jika anda mahukan beberapa ciri yang kuat seperti plug'n'play, anda memerlukan beberapa ciri yang hilang dalam npm dan mempunyai ruang cakera yang cukup, pilih benang.

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

Apakah perbezaan utama antara benang dan npm?

Benang dan NPM adalah kedua -dua pengurus pakej untuk JavaScript, tetapi mereka mempunyai beberapa perbezaan utama. Benang dibangunkan oleh Facebook dan bertujuan untuk menangani beberapa kekurangan NPM. Ia memberikan kelajuan yang lebih tinggi, keselamatan yang lebih baik, dan pengurusan ketergantungan yang lebih dipercayai. Sebaliknya, NPM adalah pengurus pakej lalai untuk Node.js, dengan pangkalan pengguna yang lebih besar. Ia juga lebih mudah digunakan oleh pemula kerana sintaks yang lebih mudah.

Adakah benang lebih cepat daripada npm?

Ya, benang biasanya lebih cepat daripada npm. Ini kerana pakej pemasangan selari benang, yang sangat mempercepatkan proses pemasangan. Sebaliknya, NPM memasang pakej secara urutan, yang mungkin lebih perlahan.

Bagaimana keselamatan benang berbanding keselamatan NPM?

Benang mempunyai ciri yang dipanggil Checksum yang mengesahkan integriti sebelum melaksanakan kod pakej yang dipasang. Ini menambah lapisan tambahan keselamatan yang tidak ada NPM. Walau bagaimanapun, NPM telah membuat penambahbaikan yang ketara terhadap ciri keselamatannya dalam siaran baru -baru ini.

Bolehkah saya menggunakan benang dan npm dalam projek yang sama?

Secara teknikal, ia mungkin menggunakan kedua -dua benang dan NPM dalam projek yang sama, ini tidak disyorkan. Ini kerana benang dan NPM mengendalikan kebergantungan secara berbeza, yang boleh menyebabkan ketidakkonsistenan dan kesilapan dalam projek.

Bagaimana menangani kebergantungan dalam benang berbanding npm?

Benang menggunakan fail kunci untuk mengunci versi kebergantungan projek. Ini memastikan bahawa pada semua mesin, setiap pemasangan menghasilkan struktur folder yang sama dalam node_modules. NPM juga menggunakan fail terkunci, tetapi ia tidak begitu ketat seperti benang.

Adakah benang lebih dipercayai daripada npm?

benang umumnya dianggap lebih dipercayai daripada NPM kerana keupayaan mengunci fail dan checksum yang ketat. Walau bagaimanapun, NPM telah membuat peningkatan yang ketara dalam kebolehpercayaan dalam siaran baru -baru ini.

Bagaimanakah sokongan komuniti benang dibandingkan dengan sokongan komuniti 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.

Apakah beberapa cabaran beralih dari npm ke benang?

Beberapa cabaran beralih dari NPM ke benang termasuk pembelajaran sintaks baru, memindahkan projek sedia ada, dan menyesuaikan diri dengan pengurusan ketergantungan ketat YARN.

Bagaimana sintaks benang dibandingkan dengan sintaks NPM?

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".

untuk pemula, adakah benang atau npm lebih baik?

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!

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