Cara cepat memulai VUE3.0: Lanjutkan ke studi
1.1 Apa itu modularisasi?
Modularisasi mengacu pada proses membagi sistem menjadi beberapa modul lapis demi lapis dari atas ke bawah ketika memecahkan masalah yang kompleks. Untuk keseluruhan sistem, modul adalah unit yang dapat digabungkan, didekomposisi, dan diganti.
Modularisasi dalam bidang pemrograman adalah mengikuti aturan tetap dan membagi file besar menjadi beberapa modul kecil yang independen dan saling bergantung.
Manfaat membagi kode menjadi beberapa modul:
Meningkatkan kemampuan penggunaan kembali kode,
meningkatkan pemeliharaan kode,
dan memungkinkan pemuatan sesuai permintaan.
2.1 Klasifikasi modul
di Node.js Berdasarkan Tergantung pada Tergantung pada. sumber modul, modul dibagi menjadi 3 kategori besar, yaitu:
modul bawaan (modul bawaan disediakan secara resmi oleh Node.js, seperti fs, path, http, dll.)
modul khusus (masing-masing . js yang dibuat oleh pengguna), semuanya merupakan modul khusus)
Modul pihak ketiga (modul yang dikembangkan oleh pihak ketiga tidak secara resmi menyediakan modul bawaan, juga bukan modul khusus yang dibuat oleh pengguna, dan perlu diunduh sebelum digunakan)
2.2 Muat modul
menggunakan Metode require() yang kuat, Anda dapat memuat modul bawaan yang diperlukan, modul yang ditentukan pengguna, dan modul pihak ketiga untuk digunakan. Misalnya:
Catatan: Saat menggunakan metode require() untuk memuat modul lain, kode dalam modul yang dimuat akan dieksekusi; akhiran file '.js' dapat dihilangkan saat memuat modul khusus.
2.3 Cakupan modul di Node.js
Apa itu cakupan modul
? Mirip dengan cakupan fungsi, variabel, metode, dan anggota lain yang ditentukan dalam modul khusus hanya dapat diakses dalam modul saat ini. Pembatasan akses tingkat modul ini disebut cakupan modul.
Manfaat cakupan modul
mencegah masalah polusi variabel global (jika dua file js diimpor dengan tag skrip dan variabel yang sama ditentukan di kedua file, variabel sebelumnya akan ditimpa oleh yang terakhir)
2.4 Berbagi cakupan modul secara eksternal Anggota
1 Objek modul
Ada objek modul di setiap modul khusus .js, yang menyimpan informasi terkait modul saat ini. Ini dicetak sebagai berikut:
2. objek module.exports
Dalam modul khusus, Anda dapat menggunakan objek module.exports untuk berbagi anggota dalam modul untuk penggunaan eksternal.
Ketika dunia luar menggunakan metode require() untuk mengimpor modul khusus, yang didapatnya adalah objek yang ditunjuk oleh module.exports.
3. Hal-hal yang perlu diperhatikan saat berbagi anggota:
Saat menggunakan metode require() untuk mengimpor modul, hasil impor akan selalu didasarkan pada objek yang ditunjuk oleh module.exports.
4. Objek ekspor
Karena kata module.exports relatif rumit untuk ditulis, untuk menyederhanakan kode untuk berbagi anggota secara eksternal, Node menyediakan objek ekspor. Secara default, ekspor dan module.exports menunjuk ke objek yang sama. Hasil akhir yang dibagikan masih berdasarkan objek yang ditunjuk oleh module.exports.
5. Kesalahpahaman dalam penggunaan ekspor dan modul.ekspor.
Ingatlah selalu bahwa ketika memerlukan() sebuah modul, Anda akan selalu mendapatkan objek yang ditunjuk oleh modul.ekspor:
Pemahaman pribadi: ekspor dan module.exports awalnya menunjuk ke objek yang sama. Hanya dengan melakukan mount data, masih menunjuk ke objek yang sama. Data yang dipasang oleh ekspor juga dapat diperoleh oleh modul require. Jika salah satu pihak memberikan nilai (menunjuk ke objek lain, maka mereka tidak menunjuk ke objek yang sama, dan modul require membuat objek tersebut ditunjuk oleh module.exports, jadi setelah salah satu pihak mengubah pointer, modul require tidak akan mendapatkan nilai ekspor.)
Catatan: Untuk mencegah kebingungan, disarankan agar Anda tidak menggunakan ekspor dan module.exports secara bersamaan dalam modul yang sama.
2.5 Spesifikasi modularitas di Node.js Node.js mengikuti modularitas CommonJS spesifikasi.CommonJS menetapkan karakteristik modul dan bagaimana setiap modul berinteraksi satu sama lain.
CommonJS menetapkan:
(1) Di dalam setiap modul, variabel modul mewakili modul saat ini.
(2) Variabel modul adalah sebuah objek, dan atribut ekspornya (yaitu module.exports) adalah antarmuka eksternal.
(3) Memuat modul sebenarnya memuat atribut module.exports dari modul. require() metode digunakan untuk memuat modul.
3.1 Paket
1. Apa itu paket?
Modul pihak ketiga di Node.js disebut juga paket.
Sama seperti komputer dan komputer mengacu pada hal yang sama, modul dan paket pihak ketiga mengacu pada konsep yang sama, tetapi dengan nama yang berbeda.
2. Sumber paket
berbeda dari modul bawaan dan modul khusus di Node.js. Paket ini dikembangkan oleh individu atau tim pihak ketiga dan gratis untuk digunakan semua orang.
Catatan: Paket-paket di Node.js semuanya gratis dan open source serta dapat diunduh dan digunakan secara gratis tanpa membayar.
3. Mengapa paket diperlukan?
Karena modul bawaan Node.js hanya menyediakan beberapa API tingkat rendah, efisiensi pengembangan proyek berdasarkan modul bawaan sangat rendah.
Paket ini dienkapsulasi berdasarkan modul bawaan, menyediakan API yang lebih canggih dan nyaman, yang sangat meningkatkan efisiensi pengembangan.
Hubungan antara paket dan modul bawaan mirip dengan hubungan antara jQuery dan API browser bawaan.
4. Dimana untuk mendownload paket?
Ada perusahaan IT di luar negeri bernama npm, Inc. Perusahaan ini memiliki website yang sangat terkenal: www.npmjs.com/, yang merupakan platform berbagi paket terbesar di dunia situs web Cari paket apa pun yang Anda butuhkan, selama Anda memiliki cukup kesabaran!
Hingga saat ini, lebih dari 11 juta pengembang di seluruh dunia telah mengembangkan dan membagikan lebih dari 1,2 juta paket untuk kami gunakan melalui platform berbagi paket ini. npm, Inc. menyediakan server di registry.npmjs.org/ untuk membagikan semua paket secara eksternal. Kita dapat mengunduh paket yang kita perlukan dari server ini.
Catatan:
Cari paket yang Anda perlukan dari situs web www.npmjs.com/
dan unduh paket yang Anda perlukan dari server registry.npmjs.org/
5. Cara mengunduh paket
npm, Inc. Perusahaan menyediakan alat manajemen paket , kita dapat menggunakan alat manajemen paket ini untuk mengunduh paket yang diperlukan dari server registry.npmjs.org/ untuk penggunaan lokal.
Nama alat manajemen paket ini adalah Node Package Manager (disebut sebagai alat manajemen paket npm). Alat manajemen paket ini diinstal pada komputer pengguna bersama dengan paket instalasi Node.js.
Anda dapat menjalankan perintah npm -v di terminal untuk memeriksa nomor versi alat manajemen paket npm yang diinstal di komputer Anda:
3.2 Pengalaman pertama dengan npm
1. Perintah untuk menginstal paket dalam proyek
Jika Anda ingin menginstal paket dengan nama tertentu dalam proyek, Anda perlu menjalankan perintah berikut:
npm install Nama lengkap paket
Perintah pengemasan di atas bisa disingkat menjadi format berikut:
npm i Nama lengkap paket
2. File tambahan apa yang ditambahkan setelah instalasi paket awal
selesai, akan ada folder tambahan bernama node_modules dan file konfigurasi paket- lock.json di bawah folder proyek.
Diantaranya: folder node_modules digunakan untuk menyimpan semua paket yang telah diinstal pada proyek. Saat require() mengimpor paket pihak ketiga, ia akan mencari dan memuat paket dari direktori ini.
File konfigurasi package-lock.json digunakan untuk mencatat informasi download setiap paket di direktori node_modules, seperti nama paket, nomor versi, alamat download, dll.
Catatan: Pemrogram tidak boleh mengubah kode apa pun secara manual di file node_modules atau package-lock.json, alat manajemen paket npm akan memeliharanya secara otomatis.
3. Instal versi paket yang ditentukan.
Secara default, ketika Anda menggunakan perintah npm install untuk menginstal sebuah paket, versi terbaru dari paket tersebut akan diinstal secara otomatis. Jika Anda perlu menginstal paket dengan versi tertentu, Anda dapat menentukan versi tertentu melalui simbol @ setelah nama paket, misalnya:
npm i [email protected]
4. Spesifikasi versi semantik paket
Nomor versi paketnya dalam "desimal bertitik" Didefinisikan dalam bentuk total tiga digit, misalnya 2.24.0.
Arti setiap digit adalah sebagai berikut:
Digit ke-1: versi mayor
Digit ke-2: versi fungsional
Digit ke-3: perbaikan bug
nomor versi Aturan untuk promosi: Selama nomor versi sebelumnya bertambah, nomor versi berikutnya akan kembali ke nol.
3.3 File konfigurasi manajemen paket
npm menetapkan bahwa file konfigurasi manajemen paket bernama package.json harus disediakan di direktori root proyek. Digunakan untuk mencatat beberapa informasi konfigurasi yang terkait dengan proyek. Misalnya:
nama proyek, nomor versi, deskripsi, dll.
Paket mana yang digunakan dalam proyek,
paket mana yang hanya digunakan selama pengembangan,
paket mana yang diperlukan selama pengembangan dan penerapan
Masalah yang dihadapi
dalam kolaborasi multi-orang
: Ukuran paket pihak ketiga terlalu besar, sehingga menyulitkan anggota tim untuk berbagi kode sumber proyek.Solusi: Hapus node_modules saat berbagi.
2. Cara mencatat paket mana yang diinstal di proyek
. Di direktori root proyek, buat file konfigurasi bernama package.json, yang dapat digunakan untuk mencatat paket mana yang diinstal di proyek. Hal ini mempermudah berbagi kode sumber proyek di antara anggota tim setelah menghapus direktori node_modules.
Catatan: Dalam pengembangan proyek selanjutnya, pastikan untuk menambahkan folder node_modules ke file abaikan .gitignore.
3. Buat package.json dengan cepat
Alat manajemen paket npm menyediakan perintah pintasan untuk membuat file konfigurasi manajemen paket package.json dengan cepat di direktori tempat perintah dijalankan:
npm init -y
Catatan:
(1) Perintah di atas Itu hanya dapat dijalankan dengan sukses di direktori bahasa Inggris! Oleh karena itu, nama folder proyek harus dalam bahasa Inggris, bukan bahasa Mandarin, dan tidak boleh ada spasi.
(2) Saat menjalankan perintah npm install untuk menginstal sebuah paket, alat manajemen paket npm akan secara otomatis mencatat nama dan nomor versi paket ke dalam package.json.
4. Node Dependensi
Pada file package.json terdapat node dependensi yang khusus digunakan untuk mencatat paket mana saja yang telah Anda instal menggunakan perintah npm install.
5. Instal semua paket sekaligus.
Ketika kita mendapatkan proyek dengan node_modules dihapus, kita perlu mengunduh semua paket ke dalam proyek sebelum kita dapat menjalankan proyek tersebut. Jika tidak, kesalahan serupa dengan yang berikut ini akan dilaporkan:
Anda dapat menjalankan perintah npm install (atau npm i) untuk menginstal semua paket dependen sekaligus:
6. Untuk menghapus instalasi suatu paket
, Anda dapat menjalankan perintah npm uninstall untuk menghapus paket yang ditentukan:
npm uninstall nama paket tertentu
Catatan: Setelah perintah npm uninstall berhasil dijalankan, paket yang dihapus instalasinya akan secara otomatis dihapus dari dependensi package.json . Tidak ada singkatan untuk menguninstall.
7. node devDependencies.
Jika beberapa paket hanya akan digunakan selama tahap pengembangan proyek dan tidak akan digunakan setelah proyek online, disarankan untuk mencatat paket-paket ini di node devDependencies.
Sejalan dengan itu, jika beberapa paket perlu digunakan setelah pengembangan dan peluncuran proyek, disarankan untuk mencatat paket-paket ini di node dependensi.
Anda dapat menggunakan perintah berikut untuk mencatat paket ke node devDependencies:
3.4 Mengatasi masalah kecepatan pengunduhan paket yang lambat
1. Mengapa kecepatan pengunduhan paket lambat?
Saat menggunakan npm untuk mengunduh paket, ia mengunduh dari server registry.npmjs.org/ luar negeri secara default, sehingga kecepatan pengunduhan paket akan sangat lambat .
2. Server cermin NPM Taobao
Taobao telah membangun server di Tiongkok untuk menyinkronkan paket di server asing resmi ke server domestik, dan kemudian menyediakan layanan distribusi paket di Tiongkok. Ini sangat meningkatkan kecepatan pengunduhan paket.
Ekstensi: Mirroring adalah suatu bentuk penyimpanan file. Data pada satu disk memiliki salinan yang sama pada disk lain, yang merupakan mirror.
3. Ganti sumber mirror paket dari npm.
Sumber mirror paket mengacu pada alamat server paket.
4. nrm
Agar lebih mudah mengganti sumber gambar paket, kita dapat menginstal alat nrm, dan menggunakan perintah terminal yang disediakan oleh nrm untuk melihat dan mengganti sumber gambar paket dengan cepat.
3.5 Klasifikasi paket
Paket yang diunduh menggunakan alat manajemen paket npm dibagi menjadi dua kategori, yaitu:
paket proyek
paket global
1. Paket proyek
. Paket-paket yang diinstal di direktori node_modules proyek semuanya adalah paket proyek.
Paket proyek dibagi menjadi dua kategori, yaitu:
paket ketergantungan pengembangan (paket yang dicatat di node devDependencies, yang hanya digunakan selama pengembangan)
paket ketergantungan inti (paket yang dicatat di node dependensi, yang digunakan selama pengembangan dan proyek. digunakan setelah online)
2. Paket global Saat menjalankan perintah npm install, jika parameter -g disediakan, paket akan diinstal sebagai paket global.
Paket global akan diinstal di direktori C:UsersuserAppDataRoamingnpmnode_modules.
Catatan:
(1) Hanya paket alat yang perlu diinstal secara global. Karena mereka memberikan perintah terminal yang berguna.
(2) Untuk menentukan apakah suatu paket perlu diinstal secara global sebelum dapat digunakan, Anda dapat merujuk pada petunjuk penggunaan resmi.
3. i5ting_toc
i5ting_toc adalah alat kecil yang dapat mengubah dokumen md menjadi halaman html.
3.6 Struktur paket terstandarisasi
Setelah memahami konsep paket dan cara mengunduh serta menggunakan paket, mari kita lihat lebih dalam struktur internal paket.
Paket yang distandarisasi harus memenuhi tiga persyaratan berikut:
(1) Paket harus ada di direktori terpisah
(2) Direktori tingkat atas paket harus berisi file konfigurasi manajemen paket package.json
(3) package.json harus berisi tiga atribut: nama, versi, dan utama, yang masing-masing mewakili nama paket, nomor versi, dan entri paket.
Catatan: Tiga persyaratan di atas adalah format yang harus dipatuhi oleh struktur paket standar. Untuk batasan lebih lanjut, Anda dapat merujuk ke URL berikut: https://yarnpkg.com/zh-Hans/docs/package-json
3.7 Kembangkan milik Anda. Paket sendiri
1. Inisialisasi struktur dasar paket
(1) Buat folder itheima-tools baru sebagai direktori root paket
(2) Di folder itheima-tools, buat tiga file berikut:
package.json (manajemen paket file konfigurasi)
index.js (file entri paket)
README.md (dokumen deskripsi paket)
2. Inisialisasi package.json
Catatan: nama - digunakan untuk memberi tahu nama aplikasi atau paket perangkat lunak; versi - menunjukkan versi saat ini; main - menetapkan titik masuk aplikasi; deskripsi adalah deskripsi singkat dari paket aplikasi/perangkat lunak - atribut ini berisi Array kata kunci yang terkait dengan fungsi paket perangkat lunak (membantu menelusuri situs web resmi node untuk menemukan paket perangkat lunak—menentukan lisensi paket perangkat lunak).
3. Tulis dokumentasi paket.
File README.md di direktori root paket adalah dokumentasi penggunaan paket. Melaluinya, kami dapat menulis petunjuk penggunaan paket dalam format penurunan harga terlebih dahulu untuk kenyamanan pengguna.
Tidak ada persyaratan wajib tentang konten apa yang harus ditulis dalam file README selama fungsi, penggunaan, tindakan pencegahan, dll. dari paket dapat dijelaskan dengan jelas.
3.8 Paket rilis
1. Daftarkan akun npm
(1) Kunjungi situs web www.npmjs.com/, klik tombol daftar untuk masuk ke antarmuka pengguna pendaftaran
(2) Isi informasi terkait akun: Nama Lengkap, Email Publik, Nama Pengguna, Kata Sandi
(3) Klik tombol Buat Akun untuk mendaftarkan akun
(4) Masuk ke email Anda dan klik tautan verifikasi untuk memverifikasi akun
2. Masuk ke akun npm
setelah pendaftaran akun npm selesai, Anda dapat menjalankan perintah login npm di terminal dan memasukkan nama pengguna dan kata sandi (kata sandi) Itu tersembunyi dan tidak dapat dilihat. Cukup masukkan kunci yang benar (Enter), alamat email, dan kode OTP yang dikirim ke alamat email, lalu Anda berhasil masuk.
Catatan: Sebelum menjalankan perintah login npm, Anda harus terlebih dahulu mengalihkan alamat server paket ke server resmi npm. (Jika Anda menggunakan server taobao sebelumnya, Anda harus beralih ke server resmi npm) Jika tidak, penerbitan paket akan gagal!
3. Publikasikan paket ke npm
.
Setelah mengalihkan terminal ke direktori root paket, jalankan perintah npmpublish untuk mempublikasikan paket ke npm (catatan: nama paket tidak boleh sama. Anda dapat mengunjungi situs web resmi untuk periksa apakah ada paket dengan nama yang sama).
4. Hapus paket yang diterbitkan.
Jalankan perintah npm unpublish package name --force untuk menghapus paket yang diterbitkan dari npm.
Catatan:
(1) Perintah npm unpublish hanya dapat menghapus paket yang dipublikasikan dalam waktu 72 jam
(2) Paket yang dihapus oleh npm unpublish tidak boleh dipublikasikan ulang dalam waktu 24 jam
(3) Berhati-hatilah saat menerbitkan paket dan usahakan untuk tidak mempublikasikannya pada npm Paket tidak berarti!
4.1 Prioritaskan pemuatan dari cache.
Modul akan di-cache setelah pemuatan pertama. Ini juga berarti bahwa memanggil require() beberapa kali tidak akan menyebabkan kode modul dieksekusi beberapa kali.
Catatan: Baik modul bawaan, modul buatan pengguna, atau modul pihak ketiga, modul tersebut akan dimuat dari cache terlebih dahulu, sehingga meningkatkan efisiensi pemuatan modul.
4.2 Mekanisme pemuatan modul bawaan
Modul bawaan adalah modul yang disediakan secara resmi oleh Node.js. Modul bawaan memiliki prioritas pemuatan tertinggi.
Misalnya: require('fs') selalu mengembalikan modul fs bawaan, meskipun ada paket dengan nama yang sama di direktori node_modules, itu juga disebut fs.
4.3 Mekanisme pemuatan modul khusus
Saat menggunakan require() untuk memuat modul khusus, Anda harus menentukan pengidentifikasi jalur yang dimulai dengan ./ atau ../. Saat memuat modul khusus, jika tidak ada pengidentifikasi jalur seperti ./ atau ../ yang ditentukan, node akan memuatnya sebagai modul bawaan atau modul pihak ketiga.
Pada saat yang sama, ketika menggunakan require() untuk mengimpor modul khusus, jika ekstensi file dihilangkan, Node.js akan mencoba memuat file berikut secara berurutan:
(1) Memuat sesuai dengan nama file yang tepat
(2) Penyelesaian Ekstensi .js untuk memuat
(3) Selesaikan ekstensi .json untuk memuat
(4) Selesaikan ekstensi .node untuk memuat
(5) Pemuatan gagal, terminal melaporkan kesalahan
4.4 Jika mekanisme pemuatan modul pihak ketiga
diteruskan ke memerlukan () Jika pengidentifikasi modul bukan modul bawaan dan tidak dimulai dengan './' atau '../', Node.js akan mencoba memuat modul pihak ketiga dari folder /node_modules, dimulai dari direktori induk dari modul saat ini.
Jika modul pihak ketiga yang sesuai tidak ditemukan, modul tersebut dipindahkan ke direktori induk satu tingkat di atas dan dimuat hingga direktori root sistem file.
Misalnya, dengan asumsi require('tools') dipanggil dalam file 'C:Usersitheimaprojectfoo.js', Node.js akan mencari dalam urutan berikut:
(1) C:Usersitheima project node_modulestools
(2) C:Usersitheimanode_modulestools
(3) C:Usersnode_modulestools
(4) C:node_modulestools
4.5 Direktori sebagai modul
Saat meneruskan direktori sebagai modul pengidentifikasi, Saat memuat require(), ada tiga metode pemuatan:
(1) Temukan file bernama package.json di direktori yang sedang dimuat, dan cari atribut utama, yang berfungsi sebagai titik masuk untuk require() memuat
( 2) Jika di direktori tidak ada file package.json, atau entri utama tidak ada atau tidak dapat diurai, Node.js akan mencoba memuat file index.js di direktori.
(3) Jika dua langkah di atas gagal, Node.js akan mencetak pesan kesalahan di terminal, melaporkan modul yang hilang: Kesalahan: Tidak dapat menemukan modul 'xxx'
Artikel ini diambil dari: https://juejin.cn/post /7083445004240158757