Rumah > hujung hadapan web > tutorial js > npm vs. npx: Apakah perbezaannya?

npm vs. npx: Apakah perbezaannya?

Patricia Arquette
Lepaskan: 2024-12-20 15:57:19
asal
763 orang telah melayarinya

Ditulis oleh Fimber Elemuwa✏️

Apabila bekerja dengan JavaScript atau Node.js, kemungkinan besar anda pernah menjumpai npm, Pengurus Pakej Node. Ia adalah alat yang digunakan untuk mengurus pakej, memasang kebergantungan dan memastikan projek anda sentiasa dikemas kini dengan perpustakaan yang diperlukannya. Tetapi kemudian terdapat npx, alat lain yang digabungkan dengan npm, yang sering menimbulkan persoalan: apakah perbezaan antara keduanya?

Pada pandangan pertama, kedua-dua npm dan npx nampaknya membantu anda berinteraksi dengan pakej Node.js, tetapi ia mempunyai tujuan yang berbeza. Dalam artikel ini, kami akan memecahkan perbezaan utama antara npm dan npx, menunjukkan kepada anda cara ia berfungsi dan meneroka masa untuk menggunakan setiap satu.

Sama ada anda menyediakan projek baharu, menjalankan skrip atau hanya ingin tahu tentang masa untuk menggunakan npm berbanding npx, panduan ini akan membantu anda memahami kedua-dua alatan dan cara ia boleh dimuatkan dalam aliran kerja pembangunan anda.

Apakah npm?

npm adalah singkatan kepada Pengurus Pakej Node, dan ia betul-betul seperti bunyinya — alat untuk mengurus pakej Node.js. Setiap kali anda memerlukan "pakej" baharu untuk projek anda, anda akan beralih kepada npm untuk membantu anda memasangnya. Pakej ini boleh terdiri daripada fungsi utiliti kecil kepada rangka kerja dan perpustakaan yang lengkap.

Tetapi npm bukan hanya untuk memasang perpustakaan. Ia juga bagus untuk menguruskan kebergantungan projek dan skrip. Jika anda perlu mengunci versi perpustakaan tertentu untuk mengelakkan perubahan yang pecah, npm telah melindungi anda. Ia juga membolehkan anda menentukan skrip dalam fail package.json anda untuk mengautomasikan tugas biasa seperti menguji atau membina projek anda.

Bagaimana npm berfungsi

Fikirkan npm sebagai kedai digital untuk komponen perisian. Apabila anda memulakan projek Node.js baharu, anda memerlukan pelbagai alatan dan perpustakaan untuk membinanya. Daripada mencipta semula roda, anda boleh menggunakan npm untuk mengambil dan memasang pakej pra-bina ini. Ia berfungsi dengan mengekalkan daftar pakej dalam talian yang luas, setiap satu dengan nama dan versi uniknya.

Apabila anda menggunakan arahan pemasangan npm, npm memuat turun pakej yang ditentukan dan kebergantungannya, meletakkannya dalam direktori tempatan bernama node_modules, tempat pusat di mana semua kebergantungan dan versi projek dijejaki. Pemasangan tempatan bermakna bahawa pakej akan tersedia hanya dalam projek tempat anda memasangnya. Perintahnya kelihatan seperti ini:

npm install <package-name>
Salin selepas log masuk
Salin selepas log masuk

Sebagai contoh, jika anda ingin menambah perpustakaan cowsay pada projek anda, anda akan menaip:

npm install cowsay
Salin selepas log masuk
Salin selepas log masuk

Direktori ini kemudiannya boleh diakses oleh projek anda, membolehkan anda menggunakan fungsi pakej dalam kod anda. Pemasangan global menjadikan pakej tersedia untuk keseluruhan sistem anda, jadi anda boleh menggunakannya untuk sebarang projek. Ini berguna untuk alatan baris perintah yang anda mahu jalankan dari mana-mana sahaja.

Selain pemasangan pakej ringkas, npm juga menawarkan kawalan versi untuk setiap pakej, yang membolehkan anda menentukan versi tepat yang anda inginkan. Ini penting untuk mengelakkan kemungkinan isu yang disebabkan oleh pecah perubahan dalam versi yang lebih baharu.

Selain itu, npm menyediakan cara untuk mentakrifkan skrip dalam package.json — ini adalah arahan yang mengautomasikan tugas seperti memulakan pelayan, menjalankan ujian atau membina projek. Dalam package.json anda, anda mungkin mentakrifkan skrip seperti ini:

npm install <package-name>
Salin selepas log masuk
Salin selepas log masuk

Apakah npx?

npx telah diperkenalkan dengan npm v 5.2.0. Walaupun npm adalah mengenai memasang dan mengurus pakej, npx adalah mengenai menjalankannya.

Fikirkan npx sebagai pelari arahan pantas yang membolehkan anda melaksanakan pakej Node.js tanpa memasangnya. npx amat berguna apabila anda mahu menggunakan pakej sekali sahaja atau mengujinya tanpa menambahkannya secara kekal pada sistem anda.

Sebelum npx, jika anda ingin menggunakan alat baris arahan daripada pakej, anda perlu memasangnya secara global terlebih dahulu. npx memudahkan perkara ini dengan membenarkan anda menjalankan alat terus dari daftar npm tanpa memerlukan pemasangan global.

Cara npx berfungsi

Apabila anda menjalankan arahan dengan npx, ia mula-mula menyemak direktori node_modules setempat anda. Jika pakej ditemui di sana, ia dilaksanakan. Jika tidak, npx memasang pakej sementara, menjalankannya, dan kemudian mengalih keluarnya. Ini bermakna anda boleh menggunakan pelbagai jenis alatan tanpa mengacaukan sistem anda.

Katakan anda mahu menggunakan aplikasi create-react-untuk memulakan projek React baharu. Biasanya, anda perlu memasangnya secara global dahulu:

npm install cowsay
Salin selepas log masuk
Salin selepas log masuk

Kemudian, anda akan menjalankan:

{
  "scripts": {
    "start": "node index.js",
    "test": "jest"
  }
}
Salin selepas log masuk

Tetapi dengan npx, anda boleh melangkau pemasangan global dan menjalankannya terus:

npm install -g create-react-app
Salin selepas log masuk

Arahan ini memuat turun apl create-react, menjalankannya dan membuangnya apabila anda selesai. Ia pantas dan mudah serta mengelakkan sistem anda daripada berselerak dengan pakej global yang mungkin anda gunakan sekali sahaja.

Jika anda telah memasang pakej secara setempat dalam projek anda, npx boleh membantu anda menjalankannya tanpa perlu menentukan laluan penuh ke node_modules. Sebagai contoh, jika anda telah memasang Jest secara setempat untuk ujian, anda boleh menjalankannya dengan npx seperti ini:

create-react-app my-app
Salin selepas log masuk

npx mencari pakej secara automatik dalam folder node_modules setempat anda dan menjalankannya, menjimatkan masa dan kerumitan anda.

Saya rasa ciri paling hebat npx ialah keupayaannya untuk mengetahui pakej atau arahan yang anda cuba jalankan. Ia mengikut proses tiga langkah untuk memutuskan cara melaksanakan sebarang arahan:

  • Semak secara setempat: npx mula-mula menyemak sama ada pakej dipasang secara setempat dalam folder node_modules projek anda. Jika ia menjumpai pakej itu, ia menjalankannya dari sana
  • Semak secara global: Jika pakej tidak ditemui secara setempat, npx menyemak sama ada ia dipasang secara global pada sistem anda. Jika ia menemui pakej secara global, ia menjalankannya
  • Ambil daripada pendaftaran npm: Akhir sekali, jika npx tidak menemui pakej sama ada secara tempatan atau global, ia mengambil pakej daripada pendaftaran npm, menjalankannya dan kemudian mengalih keluarnya selepas pelaksanaan

N.B., secara lalai, npx akan menjalankan versi terkini pakej tetapi jika anda memerlukan versi tertentu, anda juga boleh memberitahu versi yang hendak dijalankan.

Perbezaan utama antara npm dan npx

npm dan npx ialah kedua-dua alat penting dalam ekosistem Node.js, tetapi ia mempunyai peranan yang berbeza pada tahap yang berbeza:

Feature npm npx
Purpose and functionality Primarily used for installing packages from the npm registry and managing dependencies in Node.js projects. It helps in adding, removing, and updating packages, and maintaining package versioning Designed to execute Node packages directly without needing to install them globally. It allows users to run packages without cluttering the global or project-specific `node_modules`
Package installation Installs packages locally or globally Executes packages temporarily without installing them permanently
Temporary usage Installation with npm persists until explicitly removed. Packages remain in `node_modules` or globally installed paths Runs packages temporarily and discards them after execution unless otherwise specified
Usage `npm install ` `npx `
Script setup Requires modifications to `package.json` to create custom scripts No modifications needed in `package.json` for running commands
Execution of CLI tools Must install CLI tools globally or locally before using them Can run CLI tools directly from the npm registry without prior installation
Project setup Typically used for project setup involving multiple dependencies and versions. Ideal for quick project scaffolding or one-time command execution, like `create-react-app`
Node.js compatibility Bundled with Node.js for general project and package management Included with Node.js starting from v 8.2.0, streamlining the execution of packages

Kesimpulan: Bilakah anda harus menggunakan npm vs. npx?

Memutuskan masa untuk menggunakan npm atau npx bergantung pada tugas dan keperluan projek anda.

Anda harus menggunakan npm apabila anda perlu memasang dan mengurus kebergantungan projek yang penting untuk pembangunan atau pengeluaran. Kerana npm memastikan pakej disenaraikan dalam package.json, anda mendapat kawalan penuh ke atas versi dan konsistensi dalam projek anda. Ia juga merupakan alat pergi-to untuk menjalankan skrip yang ditakrifkan dalam package.json, menjadikannya sesuai untuk tugas seperti membina, menguji atau menjalankan pelayan anda.

Sebaliknya, npx adalah yang terbaik untuk perintah cepat, sekali sahaja atau alat ujian tanpa komitmen pemasangan global. Jika anda mahu menggunakan alat sekali sahaja — seperti create-react-app untuk bootstrap projek React — npx membolehkan anda menjalankannya secara terus tanpa mengacaukan sistem anda. Ia juga berguna untuk menjalankan pakej yang dipasang secara tempatan tanpa menaip laluan penuh, memudahkan aliran kerja anda. Pendek kata, gunakan npm untuk pengurusan pergantungan jangka panjang dan npx untuk tugas sementara atau menjalankan pakej dengan cepat.


200-an sahaja ✔️ Pantau permintaan rangkaian yang gagal dan lambat dalam pengeluaran

Memasang apl web atau tapak web berasaskan Node ialah bahagian yang mudah. Memastikan tika Node anda terus menyampaikan sumber kepada apl anda ialah keadaan menjadi lebih sukar. Jika anda berminat untuk memastikan permintaan ke bahagian belakang atau perkhidmatan pihak ketiga berjaya, cuba LogRocket.

npm vs. npx: What’s the difference?

npm vs. npx: What’s the difference?

LogRocket adalah seperti DVR untuk apl web, merakam secara literal semua yang berlaku di tapak anda. Daripada meneka sebab masalah berlaku, anda boleh mengagregat dan melaporkan permintaan rangkaian yang bermasalah untuk memahami dengan cepat puncanya.

LogRocket memperalatkan apl anda untuk merekodkan pemasaan prestasi garis dasar seperti masa muat halaman, masa kepada bait pertama, permintaan rangkaian perlahan dan juga merekodkan tindakan/keadaan Redux, NgRx dan Vuex. Mulakan pemantauan secara percuma.

Atas ialah kandungan terperinci npm vs. npx: Apakah perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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