Modul Deno: Penggunaan, Amalan Terbaik & Import Modul Node
node.js adalah runtime JavaScript berdasarkan enjin Chrome V8 yang dibangunkan oleh Ryan Dahl dan dikeluarkan pada tahun 2009.
Deno juga merupakan runtime JavaScript berdasarkan enjin Chrome V8 yang dibangunkan oleh Ryan Dahl dan dikeluarkan pada tahun 2020. Ia dicipta berdasarkan satu dekad pengalaman. Ini tidak semestinya bermakna ia adalah sekuel untuk node.js atau alternatif yang lebih maju, tetapi ia menyimpang dari laluan node.js.
Lihat juga:
panduan deno kami, termasuk indeks kandungan deno kami (tatal ke akhir)
- Perbandingan Node.js vs Deno, dan panduan untuk memilih alat yang sesuai dengan keadaan tertentu
- Perbezaan utama: Deno secara asli menyokong API TypeScript, Security, Testing dan Browser. Pemprosesan modul telah mendapat sedikit perhatian, tetapi mungkin perubahan terbesar dalam cara aplikasi JavaScript dibuat. Sebelum membincangkan Deno, izinkan saya membawa anda kembali ke era yang lebih mudah ...
mata utama
Deno adalah runtime JavaScript berdasarkan enjin Chrome V8 yang menyimpang dari Node.js dengan menyokong API, keselamatan, ujian dan penyemak imbas secara asli. Ia juga memilih untuk menggunakan modul ES2015, yang diimport dari URL mutlak atau relatif, tidak seperti Node.js menggunakan CommonJs.
- Deno tidak mempunyai pengurus pakej seperti npm di node.js. Sebaliknya, apabila ia pertama kali menemui URL modul dalam skrip, ia memuat turun dan cache ke direktori global, yang bermaksud bahawa tidak kira berapa banyak projek merujuknya, hanya satu salinan versi modul tertentu yang diperlukan.
- Deno membolehkan versi URL modul supaya versi kod tertentu dapat dirujuk. Ia juga menyokong mengimport setiap modul yang digunakan dalam projek menggunakan fail ketergantungan tunggal, atau memberikan nama kepada URL penuh atau separa menggunakan peta import.
- Platform mempunyai keselamatan terbina dalam, menyekat sistem fail dan akses rangkaian, dan menyediakan pilihan pemeriksaan integriti. Ia juga menyokong penggunaan API Node.js dan modul silang platform yang dijalankan pada Node.js dan Deno tanpa pemprosesan khas, dan modul-modul tersebut mungkin menjadi semakin popular kerana ekosistem runtime JavaScript terus berkembang semakin biasa.
- modul node.js
Pada tahun 2009, JavaScript tidak mempunyai sistem modul standard. Sebahagian daripada ini adalah kerana latar belakang penyemak imbasnya, dan ia akan mengambil masa beberapa tahun untuk ES6/ES2015 untuk muncul.
node.js tidak dapat dibayangkan jika ia tidak menyediakan modul, jadi ia mengadopsi commonjs dari beberapa penyelesaian dalam masyarakat. Ini telah membawa kepada pembangunan Pengurus Pakej Node (NPM), yang membolehkan pemaju dengan mudah mencari, menggunakan dan menerbitkan modul JavaScript mereka sendiri.
Penggunaan NPM telah meningkat secara eksponen. Ia telah menjadi pengurus pakej yang paling popular, dan pada pertengahan tahun 2020 ia menjadi tuan rumah hampir 1.5 juta modul dengan lebih daripada 800 penambahan baru setiap hari (Sumber: ModuleCounts.com).
modul deno
Deno Pilih untuk menggunakan modul ES2015, yang boleh diimport dari URL mutlak atau relatif:
<code>import { something } from 'https://somewhere.com/somehow.js'; </code>
skrip di URL ini mesti mengeksport fungsi atau nilai lain dengan sewajarnya, contohnya:
<code>export function something() { console.log('something was executed'); } </code>
Deno menggunakan sistem modul yang sama seperti yang dilaksanakan dalam pelayar web moden.
node.js juga menyokong modul ES2015 ... tetapi ini rumit dan masih eksperimen. Modul CommonJS dan ES2015 kelihatan serupa, tetapi berfungsi dengan cara yang berbeza:
- CommonJS memuatkan kebergantungan dari sistem fail seperti yang diperlukan semasa melaksanakan kod.
- Modul ES akan pra-parse dari URL untuk menyelesaikan import selanjutnya sebelum melaksanakan kod.
node.js mesti terus menyokong CommonJs dan mengendalikan modul ES campuran. Oleh itu, ia mengandaikan:
- fail yang berakhir dengan .cjs Gunakan Commonjs
- fail yang berakhir dalam .mjs Gunakan modul ES
- Fail yang berakhir di .js adalah commonjs, melainkan pakej.json yang paling terkini "jenis": "modul", atau nod dilaksanakan dengan pilihan-input-jenis = modul.
Tiada Pengurus Pakej.
Satu kritikan terhadap NPM adalah skala besar direktori Node_modules untuk setiap projek. Sebagai modul memerlukan versi tertentu modul lain, ia boleh mencapai beratus -ratus megabait.
Deno muat turun dan cache ke direktori global apabila kali pertama Deno menemui URL modul dalam skrip. Jadi tidak kira berapa banyak projek merujuknya, hanya satu salinan versi modul tertentu yang diperlukan.
Saya tahu anda berfikir: "Ah, tetapi jika ..."
... tetapi Deno mempunyai pilihan untuk menyelesaikan masalah yang dibangkitkan oleh URL modul.
URL yang tidak boleh dipercayai
URL mungkin gagal buat sementara waktu, berubah, atau hilang secara kekal. Ini adalah masalah bagi mana -mana pengurus pakej, dan NPM juga menghadapi masalah pada masa lalu (ia juga membolehkan pemasangan dari URL).
Untuk aplikasi Node.js kritikal, adalah disyorkan untuk menambah direktori Node_modules anda ke Repositori Git/Repositori lain.
Deno menyokong pilihan yang sama. Anda boleh menetapkan pembolehubah persekitaran deno_dir ke laluan direktori dalam projek semasa, contohnya:
<code>DENO_DIR=~/myproject/deno_modules` </code>
atau Windows PowerShell:
<code>> set DENO_DIR="C:\myproject\deno_modules" </code>
Apabila aplikasi anda berjalan, Deno cache modul ke direktori itu supaya mereka dapat ditambah ke repositori kawalan sumber projek.
<code>> $env:DENO_DIR="C:\myproject\deno_modules" </code>
Anda juga mungkin mempertimbangkan kebergantungan bundling ke dalam fail JavaScript atau TypeScript tunggal. Perintah Deno Bundle boleh melakukan ini dalam satu langkah:
di mana MyScript.js adalah skrip kemasukan yang biasanya dilaksanakan menggunakan Deno Run. Fail MyScript.Bundle.js yang dihasilkan boleh digunakan ke pelayan masa nyata.
<code>deno bundle myscript.js myscript.bundle.js</code>
bundle dengan tunggu atas
Deno menyokong menunggu peringkat atas: tidak perlu membungkus panggilan menunggu dalam fungsi async tanpa nama. Malangnya, menunggu peringkat tertinggi gagal dalam bundle, jadi fungsi pembalut mesti ditambah. Ini adalah isu yang diketahui dan akan ditetapkan dalam pelepasan masa depan.
Terakhir: Berhati -hati dengan modul deno rawak pada URL yang luar biasa! Deno, GitHub, atau URL Bitbucket dengan dokumentasi yang baik dan input komuniti umumnya lebih selamat.
Kawalan versi modul
Sebaik -baiknya, URL modul harus dibentuk supaya anda dapat merujuk versi kod tertentu. Sebagai contoh, Perpustakaan Standard Deno membolehkan anda memuatkan versi tertentu modul pelayan HTTP:
<code>import { something } from 'https://somewhere.com/somehow.js'; </code>
anda juga boleh merujuk kepada cawangan induk:
<code>export function something() { console.log('something was executed'); } </code>
tetapi ini akan memuat turun versi terkini, dan versi masa depan mungkin tidak sesuai dengan aplikasi anda.
Anda boleh menggunakan konvensyen kawalan versi yang sama untuk menerbitkan modul Deno pada pelayan anda sendiri, tetapi kerana ia menjadi lebih popular, laman web anda mungkin menerima banyak lalu lintas. Cara yang lebih dipercayai ialah menggunakan repositori perkhidmatan seperti GitHub dan memberikan tag Git kepada setiap versi. Perkhidmatan seperti denopkg.com dan unpkg.com boleh digunakan untuk menyediakan URL modul versi awam.
Multiple Module Mentions
anda mungkin perlu merujuk URL modul yang sama dalam banyak fail dalam asas kod aplikasi. Apabila anda ingin mengemas kini modul, anda perlu menukar URL di beberapa tempat. Cari dan ganti boleh berfungsi, tetapi ia adalah kekok, rawan kesilapan, dan meningkatkan kemungkinan konflik gabungan.
Sebagai alternatif, anda boleh menggunakan fail ketergantungan tunggal yang mengimport setiap modul yang digunakan dalam projek. Ia biasanya dinamakan DEPS.JS atau DEPS.TS:
<code>DENO_DIR=~/myproject/deno_modules` </code>
anda kemudian boleh merujuk modul deno dari deps.js dalam mana -mana fail projek lain:
<code>> set DENO_DIR="C:\myproject\deno_modules" </code>
Apabila modul dikemas kini, anda hanya perlu menukar rujukan URL tunggal di DEPS.JS.
pilihan lain ialah mengimport peta. Ini adalah fail json kecil, biasanya dinamakan import_map.json, yang memberikan nama kepada URL penuh atau separa:
<code>> $env:DENO_DIR="C:\myproject\deno_modules" </code>
anda boleh merujuk nama peta import dalam mana -mana skrip:
<code>deno bundle myscript.js myscript.bundle.js</code>
Kemudian, apabila melaksanakan aplikasi dengan Deno Run, import fail JSON:
<code>import { serve } from 'https://deno.land/std@0.61.0/http/server.ts'; </code>
Peta import kini merupakan fungsi yang tidak stabil, jadi bendera yang tidak dapat digunakan. Ciri ini mungkin berubah dalam versi Deno masa depan.
Integriti Penyiasatan
Kod yang dirujuk dari URL boleh diubah atau digodam tanpa pengetahuan anda. Laman web yang terkenal telah digodam kerana mereka menghubungkan terus ke kod klien pihak ketiga. Bayangkan berapa banyak kerosakan yang akan menyebabkan jika skrip dapat mengakses sumber pelayan.
Deno mempunyai keselamatan terbina dalam, jadi skrip mesti dilaksanakan dengan bendera seperti-dibaca dan --low-net untuk mengehadkan sistem fail dan akses rangkaian. Ini akan membantu mencegah beberapa masalah, tetapi ini bukan pengganti untuk mengesahkan integriti modul!
Deno menyediakan pilihan pemeriksaan integriti. Jika anda menggunakan fail ketergantungan tunggal (seperti yang dinyatakan di atas), ia adalah yang paling mudah:
<code>import { serve } from 'https://deno.land/std/http/server.ts'; </code>
Perintah Deno berikut menghasilkan fail Lock.json yang mengandungi cek semua modul Deno yang diimport:
<code>import { something } from 'https://somewhere.com/somehow.js'; </code>
Apabila pemaju lain klon projek anda, mereka boleh memuatkan semula setiap modul dan mengesahkan integriti setiap modul untuk memastikan ia sama dengan modul anda:
<code>export function something() { console.log('something was executed'); } </code>
Deno tidak menguatkuasakan cek integriti. Adalah lebih baik untuk menjalankan proses ini sebagai cangkuk git automatik atau operasi yang serupa.
menggunakan modul node.js
banyak Node.js API telah disalin untuk Deno - lihat deno.land/std/node. Ini bukan senarai lengkap, tetapi anda akan menemui fail biasa, acara, penampan, dan modul utiliti.
Pengumpulan hampir 800 modul Deno pihak ketiga disediakan pada
deno.land/x. Terdapat rangka kerja yang serupa dengan Express.js, pemacu pangkalan data, fungsi penyulitan, alat baris arahan, dll.anda juga akan menemui senarai pilihan modul popular, seperti Deno Awesome.
- jspm.org
- unpkg.com
- Sama ada modul yang anda perlukan berfungsi dengan baik di Deno adalah perkara lain. Modul-modul silang platform yang dijalankan di Node.js dan Deno tanpa pemprosesan khas mungkin muncul kerana ekosistem runtime JavaScript terus berkembang.
Lebih banyak soalan modul
merujuk kepada URL modul adalah kontroversi, dan bagi mereka dari NPM yang sangat popular, ia boleh mengganggu. Iaitu, Deno memudahkan penggunaan modul JavaScript. Ia menangani beberapa kritikan NPM sambil mengurangkan banyak kesan sampingan yang berpotensi dari modul ES2015.
Tetapi ini jauh dari sempurna.
Mudah untuk menerbitkan modul NPM, dan ia juga mudah untuk mencari npmjs.com. Istilah carian anda boleh mengembalikan 500 hasil, tetapi dengan pakej ranking oleh populariti, kualiti, dan faktor penyelenggaraan, anda boleh meminimumkan lumpuh pemilihan. Mengemukakan kod ke senarai modul pihak ketiga di Deno adalah sukar. Modul mesti lulus ujian automatik, tetapi kualiti tidak dapat dijamin, dan hasil carian disusun mengikut abjad. Sebaik sahaja bilangan modul mencapai beberapa ribu, sistem sedia ada tidak mungkin bertahan.
Ia juga mudah untuk mengemas kini pakej dalam npm. Anda boleh menjalankan NPM ketinggalan zaman untuk melihat senarai kemas kini, atau hanya menjalankan NPM Pasang apabila merujuk nombor versi looser dalam Package.json.
Tiada pilihan semak kemas kini yang setara di Deno. Terdapat projek seperti pengurus pakej yang tersedia, termasuk Trex, kemas kini Deno Dependencies, dan Deno-Check-Updates, tetapi projek-projek ini biasanya bergantung kepada peta import dan sentiasa bergantung pada URL versi semantik.
Sekiranya anda beralih ke Deno?
node.js tidak mati. Ia telah matang dan mempunyai sepuluh tahun pengalaman dalam modul, teknologi, dokumentasi dan runtime.
Deno menggunakan kebanyakan pengetahuan ini, tetapi ia sangat baru dan akan berkembang pesat pada tahun -tahun akan datang. Ia mungkin terlalu awal untuk aplikasi besar, tetapi untuk projek -projek kecil, risiko kurang. Mereka yang sudah menggunakan TypeScript atau dari bahasa lain mungkin menikmati pengalaman yang lebih mudah, tetapi pemaju Node.js tidak akan mengalami kesukaran menukar ke Deno dan kemudian menukar kembali.
- sistem modulnya sama dengan klien JavaScript
- Ia melaksanakan banyak API pelayar: anda boleh merujuk objek tetingkap, menetapkan pendengar acara, memulakan pekerja web, membuat permintaan pelayan jauh menggunakan API Fetch (), dan banyak lagi.
Asas Deno
Ketahui tentang Deno dengan cepat. Koleksi asas Deno kami membantu anda mengambil langkah pertama ke dunia Deno dan seterusnya, dan kami terus menambah kandungan kepadanya. Kami akan memberikan anda tutorial yang anda perlukan untuk menjadi profesional. Anda sentiasa boleh mengemas kini indeks pada akhir Panduan Deno Bermula:
➤ Deno Asas
soalan yang sering ditanya mengenai modul deno
Apakah modul Deno? Modul Deno adalah unit kod di Deno, yang merupakan runtime yang selamat untuk JavaScript dan Typescript. Modul di DENO adalah serupa dengan modul CommonJS dalam modul Node.js dan ES6 dalam JavaScript moden. Mereka membolehkan pemaju untuk mengatur dan berkongsi kod dengan memecahkannya ke dalam blok yang boleh diguna semula dan terkandung.
Bagaimana untuk membuat modul di Deno? Mewujudkan modul di Deno adalah mudah. Anda boleh membuat fail baru (contohnya, Module.ts), menentukan fungsi atau kelas anda, dan kemudian mengeksportnya menggunakan kata kunci eksport. Skrip Deno lain boleh mengimport dan menggunakan modul ini.
Bagaimana untuk mengimport modul di Deno? Untuk mengimport modul di Deno, anda boleh menggunakan kata kunci import yang diikuti oleh laluan atau URL modul. Deno menyokong import tempatan dan jauh.
Bolehkah saya menggunakan modul pihak ketiga di Deno? Ya, Deno menyokong pengimportan modul secara langsung dari URL, yang membolehkan anda menggunakan modul pihak ketiga yang dihoskan pada pendaftaran pakej atau repositori GitHub.
Atas ialah kandungan terperinci Modul Deno: Penggunaan, Amalan Terbaik & Import Modul Node. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Perbincangan mendalam mengenai punca-punca utama perbezaan dalam output konsol.log. Artikel ini akan menganalisis perbezaan hasil output fungsi Console.log dalam sekeping kod dan menerangkan sebab -sebab di belakangnya. � ...
