. Kedengarannya sempurna, bukan? npm install -g your-tool
mata utama
- Lebih penggunaan pilihan
- untuk memasang modul NPM boleh menyebabkan masalah kerana walaupun projek bergantung kepada modul global, modul ini tidak disenaraikan sebagai kebergantungan untuk projek. Ini meningkatkan beban kerja orang lain menggunakan aplikasinya dan boleh membawa kepada konflik versi.
-g
Untuk mengelakkan masalah yang disebabkan oleh kebergantungan modul NPM global, adalah disyorkan untuk mengeluarkan - apabila memasang modul dan menggantikannya dengan
-g
. Ini menjimatkan modul sebagai kebergantungan pembangunan dan memastikan ia dipasang semasa menjalankan--save-dev
.npm install
Selepas memasang kebergantungan secara tempatan, sebarang skrip yang dimaksudkan untuk dijalankan dari baris arahan akan diletakkan di direktori - . Menggunakan skrip NPM boleh memudahkan proses ini dan membolehkan versi tempatan modul dijalankan dengan arahan yang lebih pendek.
./node_modules/.bin/
Walaupun ia mungkin sedikit berlebihan, disyorkan untuk menggunakan nod dan npm sebagai kebergantungan untuk projek dan memasangnya secara tempatan ke dalam projek. Walau bagaimanapun, ini boleh menjadi rumit kerana nod adalah berbeza pada setiap sistem operasi, dan tidak ada cara mudah untuk memastikan semua orang menambah laluan salinan tempatan nod dan NPM ke pembolehubah persekitaran laluan mereka.
Kami mempunyai beberapa masalah
Saya tidak akan mengatakan tidak pernah memasang modul NPM menggunakan pilihan, tetapi saya harus mengatakan bahawa terlalu banyak penggunaannya boleh menyebabkan masalah. Saya fikir kita harus mengurangkan penggunaan pemasangan modul global, terutamanya dalam hal alat pembina, ujian atau kod pemeriksaan (seperti Gulp, Karma, Jshint, dll.), Atas sebab -sebab berikut: Artikel ini terutama membincangkan Teluk kerana Sangat popular dan membaca cerah, tetapi jika anda tidak suka Gulp, gantikannya dalam fikiran anda dengan alat apa pun yang anda suka. -g
dan mula bekerja. Anda akhirnya perlu menambah arahan dalam fail ReadMe, contohnya: npm install
- Git Clone Warehouse
- Run
npm install
- Run
npm install -g gulp
- Run
Bina gulp
Isu utama kedua yang berkaitan dengan memasang modul di seluruh dunia adalah bahawa anda mungkin menghadapi konflik kerana versi modul yang salah dipasang. Dua contoh berikut menggambarkan ini:
- Anda membuat projek anda enam bulan yang lalu apabila anda menggunakan versi terkini Gulp. Hari ini, seseorang mengklonkan repositori projek anda dan cuba menjalankan Gulp untuk membinanya, tetapi mengalami kesilapan. Ini kerana orang yang mengkloning projek anda menjalankan versi lama Gulp atau versi baru Gulp dengan beberapa perbezaan yang ketara.
- Anda membuat projek menggunakan Gulp enam bulan yang lalu. Sejak itu, anda pergi ke projek lain dan mengemas kini Gulp pada mesin anda. Sekarang bahawa anda kembali ke projek lama ini dan cuba untuk menjalankan Gulp, anda akan mendapat ralat kerana anda telah mengemas kini Gulp sejak terakhir menghubungi projek. Sekarang anda terpaksa mengemas kini proses binaan untuk bekerja dengan versi baru Gulp sebelum anda dapat membuat lebih banyak kemajuan pada projek anda dan bukannya melambatkannya ke masa yang lebih mudah.
nota ringkas mengenai keselamatan
Secara lalai, pada sesetengah sistem, pemasangan modul NPM global memerlukan keizinan yang tinggi. Jika anda mendapati diri anda menjalankan arahan seperti
, anda harus menukar arahan ini. Panduan pemula NPM kami akan menunjukkan kepada anda bagaimana untuk melakukannya. sudo npm install -g a-package
Pengecualian
Jadi, apa yang boleh anda pasang secara global? Pendek kata: apa -apa projek anda tidak bergantung. Sebagai contoh, saya memasang modul global yang dipanggil. Setiap kali saya hanya perlu melihat beberapa fail HTML dalam penyemak imbas saya, saya menjalankan local-web-server
(ini adalah arahan untuk ws
) yang menetapkan folder semasa ke akar local-web-server
dan kemudian saya boleh membuka sebarang dokumen di dalam anda penyemak imbas dan mengujinya. localhost:8000
dan saya dapat dengan mudah memampatkan sebarang skrip dari baris arahan dalam beberapa saat. uglify-js
Penyelesaian
bagaimana kita harus menghalangnya sekarang bahawa kita tahu di mana masalah itu mungkin berlaku? Perkara pertama yang perlu anda lakukan ialah mengeluarkan -g
semasa memasang modul. Anda harus menggantikannya dengan --save-dev
supaya anda dapat menyimpan modul sebagai kebergantungan pembangunan dan ia akan sentiasa dipasang apabila seseorang berjalan npm install
. Ini hanya akan menyelesaikan salah satu isu kecil yang saya sebutkan tadi, tetapi ia hanya permulaan.
Apa yang anda perlu tahu ialah apabila anda memasang kebergantungan secara tempatan, jika ia mempunyai skrip yang dimaksudkan untuk dijalankan dari baris arahan, mereka akan diletakkan di direktori ./node_modules/.bin/
. Jadi sekarang, jika anda hanya memasang Gulp secara tempatan, anda boleh menjalankannya dengan menaip ./node_modules/.bin/gulp
pada baris arahan. Sudah tentu, tiada siapa yang mahu menaip semua ini. Anda boleh menggunakan skrip NPM untuk menyelesaikan masalah ini.
dalam fail package.json
anda, anda boleh menambah atribut scripts
yang serupa dengan yang berikut:
{ ... "scripts": { "gulp": "gulp" } }
Anda kini boleh menjalankan npm run gulp
pada bila -bila masa untuk menjalankan versi tempatan Gulp. Skrip NPM mencari salinan tempatan perintah yang boleh dilaksanakan dalam direktori ./node_modules/.bin/
sebelum memeriksa pembolehubah persekitaran laluan. Jika anda mahu, anda juga boleh lulus parameter lain untuk menelan dengan menambah --
sebelum parameter ini, contohnya npm run gulp -- build-dev
bersamaan dengan gulp build-dev
.
Anda masih perlu menaip lebih daripada menggunakan Gulp di seluruh dunia, tetapi itu buruk, tetapi ada dua cara untuk menyelesaikan masalah ini. Pendekatan pertama (juga menyelesaikan salah satu masalah yang disebutkan di atas) adalah untuk membuat alias menggunakan skrip NPM. Sebagai contoh, anda tidak perlu mengikat permohonan anda ke Gulp, jadi anda boleh membuat skrip yang menjalankan Gulp tetapi tidak menyebut Gulp:
{ ... "scripts": { "build": "gulp build-prod", "develop": "gulp build-dev" } }
Dengan cara ini, anda boleh membuat panggilan untuk menelan lebih pendek dan menyimpan skrip anda sejagat. Dengan menjaga kepelbagaian, anda sentiasa boleh mengeluarkan telus dan menggantinya dengan sesuatu yang lain tanpa sesiapa yang perlu tahu (kecuali jika mereka berurusan dengan proses binaan, di mana mereka sepatutnya tahu dan mungkin harus terlibat dalam penghijrahan dan meninggalkan perbincangan Gulp ). Sebagai alternatif, anda juga boleh menambah skrip postinstall
ke sana supaya proses binaan akan dijalankan secara automatik selepas seseorang berjalan npm install
. Ini akan memudahkan fail ReadMe anda. Di samping itu, dengan menggunakan skrip NPM, sesiapa yang mengkloning projek anda harus mendapatkan dokumentasi mudah dan mudah pada semua proses yang anda jalankan pada projek anda dalam fail package.json
.
Di samping menggunakan skrip NPM, terdapat satu lagi helah yang membolehkan anda menggunakan pemasangan alat perintah baris tempatan: relatif kepada laluan. Saya menambah ./node_modules/.bin/
ke pemboleh ubah persekitaran saya, selagi saya berada di akar projek, saya boleh mengakses alat arahan dengan menaip nama arahan. Saya belajar helah ini dari komen pada jawatan lain yang saya tulis (terima kasih kepada Gabriel Falkenberg).
Trik ini tidak sepenuhnya pengganti untuk setiap situasi di mana anda ingin menggunakan alat seperti Gulp, mereka mengambil beberapa kerja untuk ditubuhkan, tetapi saya fikir bahawa penyenaraian alat ini sebagai kebergantungan anda harus menjadi amalan terbaik. Ini akan menghalang konflik versi (yang merupakan salah satu sebab utama pengurus ketergantungan di tempat pertama) dan akan membantu memudahkan langkah -langkah orang lain perlu mendapatkan projek anda.
Langkah lebih jauh
Ini mungkin sedikit berlebihan, tetapi saya fikir Node dan NPM juga kebergantungan untuk projek anda, dan mereka mempunyai beberapa versi yang berbeza yang mungkin bertentangan. Jika anda ingin memastikan aplikasi anda berfungsi untuk semua orang, anda memerlukan beberapa cara untuk memastikan bahawa pengguna juga mempunyai versi Node dan NPM yang betul dipasang.
Anda boleh memasang salinan nod tempatan dan NPM ke dalam projek anda! Tetapi itu tidak menyelesaikan semua masalah. Pertama, nod adalah berbeza pada setiap sistem operasi, jadi semua orang masih perlu memastikan mereka memuat turun versi yang serasi dengan sistem operasi mereka. Kedua, walaupun ada cara untuk memasang nod biasa, anda perlu memastikan semua orang mempunyai cara mudah untuk mengakses nod dan npm dari baris arahan mereka, seperti memastikan semua orang menambah jalan ke salinan nod tempatan dan npm kepada pembolehubah persekitaran mereka. Tidak ada cara mudah untuk menjamin ini.
Jadi, ketika saya suka dapat menguatkuasakan versi khusus Node dan NPM untuk setiap projek, saya tidak dapat memikirkan cara yang baik untuk melakukan ini. Jika anda fikir ini adalah idea yang baik dan tampil dengan penyelesaian yang baik, marilah kita semua tahu dalam komen. Saya ingin melihat penyelesaian yang cukup mudah untuk menjadikan ini amalan standard!
Kesimpulan
Saya harap anda kini dapat memahami kepentingan kebergantungan versi yang menyenaraikan alat sebagai projek. Saya juga berharap bahawa anda bersedia bekerja keras untuk melaksanakan amalan ini dalam projek anda sendiri supaya kami dapat mempromosikannya sebagai standard. Kecuali anda mempunyai idea yang lebih baik, katakanlah dan biarkan seluruh dunia tahu!
FAQs (FAQ) pada Soalan Dependensi Modul NPM Global
Apakah masalah ketergantungan modul NPM global?
Masalah pergantungan modul NPM global adalah masalah biasa yang dihadapi oleh pemaju ketika memasang pakej Node.js di seluruh dunia. Masalah ini berlaku apabila pakej global yang dipasang tidak dapat mengakses kebergantungan yang dipasang di dalam negara. Ini boleh menyebabkan kesilapan dan masalah dalam fungsi aplikasi. Masalahnya adalah disebabkan oleh cara nod.js mengendalikan parsing modul, yang boleh menjadi sangat rumit dan mengelirukan bagi pemaju.
Bagaimana menyelesaikan masalah kebergantungan modul NPM global?
Terdapat beberapa cara untuk menyelesaikan masalah ketergantungan modul NPM global. Salah satu cara yang paling berkesan ialah memasang pakej secara tempatan, bukan secara global. Ini memastikan bahawa pakej mempunyai akses kepada semua kebergantungannya. Cara lain ialah menggunakan perintah npm link
, yang mewujudkan hubungan simbolik antara pakej global dan kebergantungan tempatannya. Ini membolehkan pakej global untuk mengakses kebergantungan mereka seperti yang dipasang di seluruh dunia.
Apakah perbezaan antara memasang pakej Node.js secara global dan tempatan?
Apabila anda memasang pakej Node.js secara global, ia dipasang di lokasi pusat sistem anda dan boleh diakses oleh semua aplikasi Node.js. Sebaliknya, apabila anda memasang pakej secara tempatan, ia dipasang di direktori node_modules
projek semasa anda, dan hanya projek itu yang boleh mengaksesnya. Walaupun pemasangan global mudah, ia boleh menyebabkan masalah kebergantungan modul NPM global.
Apakah arahan npm link
dan bagaimana ia berfungsi?
Perintah npm link
adalah alat yang disediakan oleh NPM untuk mewujudkan hubungan simbolik antara pakej global dan kebergantungan tempatan mereka. Apabila anda menjalankan npm link
dalam direktori pakej, ia mewujudkan pautan simbolik dari direktori global node_modules
ke pakej tempatan. Ini membolehkan pakej global untuk mengakses kebergantungan mereka seperti yang dipasang di seluruh dunia.
Mengapa masalah ketergantungan modul NPM global berlaku?
Masalah pergantungan modul NPM global disebabkan oleh cara nod.js mengendalikan parsing modul. Apabila pakej dipasang secara global, Node.js mencari kebergantungannya dalam direktori Global node_modules
. Walau bagaimanapun, jika kebergantungan dipasang secara tempatan, node.js tidak dapat menemukannya, mengakibatkan isu kebergantungan modul NPM global.
Bolehkah saya mengelakkan isu ketergantungan modul NPM global dengan memasang pakej secara tempatan?
Ya, salah satu cara yang paling berkesan untuk mengelakkan masalah kebergantungan modul NPM global adalah untuk sentiasa memasang pakej secara tempatan. Ini memastikan bahawa pakej ini mempunyai akses kepada semua kebergantungan mereka. Walau bagaimanapun, ini mungkin tidak selalu praktikal atau mudah, terutamanya jika anda perlu menggunakan pakej dalam pelbagai projek.
Adakah terdapat alat atau pakej yang dapat membantu saya menguruskan kebergantungan node.js saya?
Ya, terdapat beberapa alat dan pakej yang dapat membantu anda menguruskan kebergantungan Node.js anda. Sebagai contoh, NPM sendiri menyediakan beberapa arahan, seperti npm install
, npm update
, dan npm outdated
, yang dapat membantu anda menguruskan kebergantungan anda. Terdapat juga alat pihak ketiga seperti benang dan penjaga hijau, yang menyediakan ciri-ciri tambahan.
Apakah risiko tidak menyelesaikan masalah ketergantungan modul NPM global?
Jika isu ketergantungan modul NPM global tidak diselesaikan, ia boleh menyebabkan kesilapan dan masalah dalam fungsi aplikasi. Ia juga menjadikannya sukar untuk mengurus dan mengemas kini kebergantungan, mengakibatkan potensi risiko keselamatan dan pakej yang sudah lapuk.
Adakah isu ketergantungan modul NPM global mempengaruhi prestasi permohonan saya?
Ya, isu ketergantungan modul NPM global boleh menjejaskan prestasi aplikasi. Jika pakej tidak dapat mengakses kebergantungannya, ia mungkin tidak berjalan dengan betul atau cekap. Ini boleh menyebabkan masalah prestasi dan kesilapan dalam permohonan.
Bagaimana untuk memeriksa sama ada pakej dipasang secara global atau tempatan?
anda boleh menggunakan arahan npm list
untuk memeriksa sama ada pakej dipasang secara global atau tempatan. Jika anda menjalankan npm list -g
, ia akan memaparkan semua pakej yang dipasang di seluruh dunia. Jika anda menjalankan npm list
dalam direktori projek, ia akan memaparkan semua pakej yang dipasang secara tempatan untuk projek tersebut.
Atas ialah kandungan terperinci Cara menyelesaikan masalah ketergantungan modul NPM global. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.

JavaScript berasal pada tahun 1995 dan dicipta oleh Brandon Ike, dan menyedari bahasa itu menjadi C. 1.C Language menyediakan keupayaan pengaturcaraan prestasi tinggi dan sistem untuk JavaScript. 2. Pengurusan memori JavaScript dan pengoptimuman prestasi bergantung pada bahasa C. 3. Ciri lintas platform bahasa C membantu JavaScript berjalan dengan cekap pada sistem operasi yang berbeza.

JavaScript berjalan dalam penyemak imbas dan persekitaran Node.js dan bergantung pada enjin JavaScript untuk menghuraikan dan melaksanakan kod. 1) menjana pokok sintaks abstrak (AST) di peringkat parsing; 2) menukar AST ke bytecode atau kod mesin dalam peringkat penyusunan; 3) Laksanakan kod yang disusun dalam peringkat pelaksanaan.

Trend masa depan Python dan JavaScript termasuk: 1. Kedua -duanya akan terus mengembangkan senario aplikasi dalam bidang masing -masing dan membuat lebih banyak penemuan dalam prestasi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

Ya, teras enjin JavaScript ditulis dalam C. 1) Bahasa C menyediakan prestasi yang efisien dan kawalan asas, yang sesuai untuk pembangunan enjin JavaScript. 2) Mengambil enjin V8 sebagai contoh, terasnya ditulis dalam C, menggabungkan kecekapan dan ciri-ciri berorientasikan objek C. 3) Prinsip kerja enjin JavaScript termasuk parsing, penyusun dan pelaksanaan, dan bahasa C memainkan peranan penting dalam proses ini.

JavaScript adalah di tengah -tengah laman web moden kerana ia meningkatkan interaktiviti dan dinamik laman web. 1) Ia membolehkan untuk menukar kandungan tanpa menyegarkan halaman, 2) memanipulasi laman web melalui Domapi, 3) menyokong kesan interaktif kompleks seperti animasi dan drag-and-drop, 4) mengoptimumkan prestasi dan amalan terbaik untuk meningkatkan pengalaman pengguna.

C dan JavaScript mencapai interoperabilitas melalui webassembly. 1) Kod C disusun ke dalam modul WebAssembly dan diperkenalkan ke dalam persekitaran JavaScript untuk meningkatkan kuasa pengkomputeran. 2) Dalam pembangunan permainan, C mengendalikan enjin fizik dan rendering grafik, dan JavaScript bertanggungjawab untuk logik permainan dan antara muka pengguna.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
