JavaScript Modular: Panduan Pemula untuk Systemjs & JSPM
- Systemjs dan JSPM adalah alat yang boleh digunakan untuk mengatasi batasan modulariti JavaScript. Systemjs adalah pemuat modul yang boleh mengimport modul dalam format popular pada masa larian, manakala JSPM adalah pengurus pakej yang dibina di atas Systemjs. Bersama -sama, mereka menguruskan pakej dan kebergantungan mereka, yang membolehkan pemasangan dan pemuatan kebergantungan yang lebih mudah.
- Proses menubuhkan projek dengan JSPM dan SystemJS melibatkan membuat direktori, memulakan projek NPM, dan memasang JSPM secara tempatan. Setelah disediakan, JSPM dan Systemjs boleh digunakan untuk memasang dan mengurus pakej dari sumber yang berbeza, memindahkan kod ES6, dan mengendalikan kebergantungan.
- JSPM juga berfungsi sebagai modul modul, menggabungkan semua fail dan perpustakaan dalam satu fail dan menukar sistem modul yang digunakan oleh fail ke modul gaya SystemJS. Proses ini bermanfaat untuk prestasi dan harus digunakan dalam aplikasi pengeluaran.
Artikel ini dikaji semula oleh Adrian Sandu dan Mark Brown. Terima kasih kepada semua pengulas rakan sebaya SitePoint untuk membuat kandungan SitePoint yang terbaik boleh!
Sejak beberapa tahun kebelakangan ini, bahasa pengaturcaraan JavaScript telah meletup dalam populariti. Ia telah menjadi bahasa untuk membangunkan kedua-dua aplikasi web yang kaya, serta aplikasi mudah alih hibrid. Dan sebagai projek JavaScript menjadi semakin kompleks, pemaju mengalami keperluan baru bahasa. Salah satu daripada ini adalah modularity.sejauh yang saya dapat lihat, terdapat dua aspek di mana modulariti harus dicapai:
- modul yang kami pengarang
- modul luaran yang dipasang sebagai dependensi
Untuk gambaran keseluruhan landskap semasa lihat: Memahami Modul JavaScript: Bundling & Transpiling
Dan apa lagi, kami tidak mempunyai pengurus pakej yang membolehkan kami memuat turun pakej dan memasukkannya ke dalam aplikasi kami. Pengurus pakej (seperti Bower dan NPM) membantu kami memuat turun kebergantungan depan tanpa perlu melawat laman web projek, tetapi itu sejauh mana.Dalam artikel ini, kita akan melihat bagaimana JSPM dan Systemjs dapat digunakan untuk mengatasi masalah ini.
Apakah jspm dan systemjs?
Pengurus Pakej JavaScript (alias JSPM) adalah pengurus pakej yang berfungsi di atas loader Modul Sistemjs Universal. Ia bukan pengurus pakej yang sama sekali baru dengan set peraturannya sendiri, sebaliknya ia berfungsi di atas sumber pakej yang sedia ada. Di luar kotak, ia berfungsi dengan GitHub dan NPM. Oleh kerana kebanyakan pakej berasaskan Bower didasarkan pada GitHub, kami boleh memasang pakej tersebut menggunakan JSPM juga. Ia mempunyai pendaftaran yang menyenaraikan kebanyakan pakej depan yang biasa digunakan untuk pemasangan yang lebih mudah. Seperti NPM, ia boleh digunakan untuk membezakan pakej sebagai pakej pembangunan dan pengeluaran semasa pemasangan.
Systemjs adalah loader modul yang boleh mengimport modul pada masa larian dalam mana -mana format popular yang digunakan hari ini (Commonjs, UMD, AMD, ES6). Ia dibina di atas polyfill loader modul ES6 dan cukup pintar untuk mengesan format yang digunakan dan mengendalikannya dengan sewajarnya. Systemjs juga boleh memindahkan kod ES6 (dengan Babel atau Traceur) atau bahasa lain seperti TypeScript dan Coffeescript menggunakan plugin. Anda mengkonfigurasi perkara -perkara ini dalam System.Config ({...}) sebelum mengimport modul anda.
JSPM menggunakan Systemjs untuk menguruskan pakej dan kebergantungan mereka, jadi kita tidak perlu bimbang untuk meletakkan pakej dalam perintah yang betul untuk memuatkannya.
Sekarang kita tahu apa jspm dan systemjs, mari kita lihat cara menggunakannya.
menyediakan persekitaran kita
Jika anda belum melakukannya, anda perlu memasang Node.js. Cara yang sangat mudah untuk melakukan ini ialah menggunakan pengurus versi (seperti NVM) dan terperinci dalam hujung cepat ini. Sebaik sahaja anda bangun dan berjalan dengan nod, anda boleh memasang JSPM secara global dengan menjalankan perkara berikut dari baris arahan:
<span>npm install -g jspm </span>
Sekarang kita boleh menggunakan antara muka baris perintah JSPM. Mari buat projek:
<span>mkdir new-project && cd new-project </span><span>npm init -y </span><span>npm install jspm --save-dev </span>
Ini mewujudkan direktori bernama New-Project, memulakan projek NPM dan memasang JSPM secara tempatan. Ini adalah cara yang disyorkan untuk melakukan sesuatu, kerana ia mengunci versi JSPM untuk projek dan memastikan peningkatan kepada JSPM global tidak akan mengubah tingkah laku aplikasi anda.
Satu lagi kelebihan pendekatan ini ialah jika projek anda digunakan melalui membina integrasi yang berterusan, anda boleh mengkonfigurasi proses membina untuk menggunakan pakej JSPM tempatan dan bukannya perlu memasang JSPM secara global pada pelayan juga.anda boleh menggunakan jspm -v untuk mengesahkan versi tempatan.
$ jspm <span>-v </span><span>0.16.34 </span>Running against <span>local jspm install. </span>
jspm init
Struktur dan Konfigurasi Direktori
Ini mencipta fail bernama config.js dalam akar projek, serta folder bernama JSPM_Packages. Jika anda mengintip di dalam folder JSPM_Packages, anda akan melihat:
- Sub-direktori github
- Sub-direktori NPM
- fail utama untuk loader modul sistemjs
Sebab JSPM membuat direktori GitHub dan NPM adalah bahawa ia piggybacks di atas pendaftaran ini, hanya aliasing npm atau pakej github yang diminta. Di samping itu, direktori GitHub mengandungi plugin Systemjs untuk memuatkan fail JSON dari GitHub dan direktori NPM mengandungi pakej yang berkaitan dengan Babel yang kita perlukan untuk memindahkan kod ES6 kami
fail config.js terutamanya untuk Systemjs. Jika anda membukanya, anda akan melihat bahawa ia mempunyai pilihan konfigurasi yang ditetapkan untuk laluan pakej dari sumber yang berbeza, pilihan untuk Babel dan nama peta untuk pakej untuk memudahkan untuk merujuknya. Fail ini dikemas kini secara automatik dikemas kini apabila pakej baru dipasang menggunakan JSPM.
Perintah juga mengemas kini fail Package.json dan menambah seksyen untuk JSPM. Pakej Babel yang dipasang dengan perintah init ditambah ke bahagian DevDependencies projek.
<span>npm install -g jspm </span>
Mana -mana pakej baru yang dipasang menggunakan perintah JSPM dengan atau tanpa pilihan -Save akan ditambah ke bahagian THEDECTENCIES dan oleh itu ia menjadi kebergantungan pengeluaran. Memasang dengan pilihan--Save-Dev menjadikan kebergantungan sebagai kebergantungan masa pembangunan dan menyelamatkannya ke bahagian DevDependency.
Akhirnya, JSPM menambah entri ke bahagian peta fail Config.js untuk setiap pakej yang dipasang menggunakan arahan JSPM. Nama yang dipetakan boleh digunakan untuk memuatkan perpustakaan dalam mana -mana fail JavaScript sepanjang projek anda. Sebarang kebergantungan pakej ditambah ke bahagian peta juga. Berikut adalah serpihan dari bahagian peta fail config.js yang menunjukkan bagaimana pakej jQuery dan jQuery-UI dipetakan dan bagaimana pergantungan ditakrifkan:
<span>mkdir new-project && cd new-project </span><span>npm init -y </span><span>npm install jspm --save-dev </span>
sebagai titik minat, anda juga boleh menjana pemetaan ini secara automatik apabila anda memasang modul:
$ jspm <span>-v </span><span>0.16.34 </span>Running against <span>local jspm install. </span>
ini akan membolehkan anda menulis perkara berikut di tempat lain di aplikasi anda:
jspm init
jspm dan systemjs dalam tindakan
Untuk menemani artikel ini, saya telah membuat sampel carian Wikipedia yang mudah. Anda boleh mencari repo GitHub di sini. Ia adalah persediaan menggunakan pilihan lalai perintah JSPM Init dan akibatnya ia menggunakan Babel sebagai Transpiler ES6. Ia juga menggunakan JQuery dan bootstrap perpustakaan yang dipasang menggunakan JSPM. Sebagai bootstrap memerlukan jQuery, JSPM mencipta pemetaan dalam fail config.js untuk memuatkan jQuery sebelum memuat bootstrap:
<span>npm install -g jspm </span>
sebagai nama repo mencadangkan, ia menanyakan API Carian Wikipedia dan memaparkan data yang diterima dalam pandangan. Ia menggunakan JQuery's $ .ajax () untuk membuat panggilan ke API, memaparkan hasil pada halaman dan mempunyai pautan untuk menunjukkan coretan artikel dalam pop timbul modal. Sampel mempunyai tiga fail JavaScript di bawah folder skrip:
- Search.js: Fail ini menggunakan modul gaya AMD. Ia sebagai beban jQuery sebagai kebergantungan dan membuat panggilan Ajax ke API Carian Wikipedia. Modul ini mengembalikan fungsi yang boleh dipanggil modul lain dengan parameter.
- summarymodal.js: Fail ini menggunakan modul gaya ES6. Ia memuat perpustakaan JavaScript Bootstrap. Ia kemudiannya mengeksport fungsi yang menerima sekeping HTML yang melarikan diri dan tidak mengesan teks HTML sebelum memaparkannya dalam pop timbul.
- display.js: Fail ini menggunakan modul gaya Commonjs. Ia memuatkan jQuery dan kedua -dua fail di atas sebagai kebergantungan. Ia memanggil kaedah yang terdedah oleh carian.js untuk mendapatkan hasil dan kemudian membuat data ini dalam jadual HTML pada UI. Di samping itu, ia menggunakan kaedah yang terdedah oleh SummaryModal.js untuk menunjukkan modal pada klik butang pautan di atas meja.
Seperti yang telah disebutkan, Systemjs memahami semua sistem modul dalam JavaScript. Kami boleh memuatkan ketiga -tiga fail di atas menggunakan Systemjs.
Untuk membuat skrip ini dijalankan, kita perlu memuat sistem.js dan config.js pada halaman HTML. Selepas itu kami akan memuatkan fail paparan.js menggunakan loader modul Systemjs. Oleh kerana fail ini merujuk kepada fail lain dalam repo dan fail -fail ini memuatkan perpustakaan yang diperlukan, kami tidak perlu memuatkan fail lain.
<span>mkdir new-project && cd new-project </span><span>npm init -y </span><span>npm install jspm --save-dev </span>
bundling
kita boleh membuat satu bundle untuk keseluruhan aplikasi menggunakan arahan berikut:
$ jspm <span>-v </span><span>0.16.34 </span>Running against <span>local jspm install. </span>
- menggabungkan semua fail dan perpustakaan dalam satu fail bernama binaan.js
- Menukar sistem modul yang digunakan oleh fail ke modul gaya Systemjs
- mencipta fail peta sumber yang dimuatkan semasa debugging
jspm init
Anda boleh mengikuti arahan dalam fail ReadMe projek untuk menjalankannya. Anda boleh melayari kod dalam fail individu dalam alat pemaju dan debug melalui mereka.
Kesimpulan
Gabungan JSPM dan SystemJS menyediakan cara bersatu untuk memasang dan memuatkan kebergantungan. Alat ini bukan sahaja menjadikan tugas menguruskan kebergantungan lebih mudah tetapi juga membuka pintu untuk menggunakan sistem modul masa depan pada penyemak imbas hari ini. Seperti yang telah saya tunjukkan, JSPM mudah untuk persediaan dan penggunaan, dua sebab yang menyumbang kepada populariti yang semakin meningkat.
Adakah anda menggunakan JSPM dalam projek anda? Kenapa? Mengapa tidak? Beritahu saya dalam komen di bawah.
Soalan Lazim (Soalan Lazim) Mengenai Modular JavaScript, Systemjs, dan JSPM
Apakah perbezaan utama antara Systemjs dan Webpack?
Systemjs dan Webpack adalah kedua -dua modul modul, tetapi mereka mempunyai beberapa perbezaan utama. Systemjs adalah pemuat modul dinamik sejagat yang memuat modul ES6, AMD, CommonJS, dan skrip global dalam penyemak imbas dan NodeJS. Ia lebih daripada pemuat modul daripada bundler. Sebaliknya, Webpack adalah modul modul statik untuk aplikasi JavaScript moden. Ia membina graf ketergantungan yang merangkumi setiap modul keperluan aplikasi anda dan membungkusnya ke dalam satu atau lebih berkas.
Bagaimana saya boleh memasang Systemjs? Anda boleh menggunakan arahan berikut untuk memasangnya: NPM Pasang Systemjs. Selepas pemasangan, anda boleh mengimportnya ke dalam projek anda menggunakan import {System} dari 'Systemjs'. Pengurus Pakej untuk Systemjs. Ia memudahkan proses memasang dan menguruskan pakej. Ia juga menyediakan cara bersatu untuk memasang pakej dari NPM, GitHub, dan sumber lain. JSPM juga boleh mengendalikan transpilation, membolehkan anda menulis kod dalam ES6 atau TypeScript dan memilikinya secara automatik ke ES5. anda boleh menggunakan kaedah System.Import (). Kaedah ini mengembalikan janji yang menyelesaikan modul. Berikut adalah contoh: System.import ('Path/to/Module.js'). Kemudian (fungsi (modul) {/ * menggunakan modul */}).
Ya, Systemjs boleh digunakan dengan Node.js. Ia menyediakan loader modul sejagat yang berfungsi dalam penyemak imbas dan node.js. Ini membolehkan anda menulis kod yang boleh dikongsi antara klien dan pelayan.
Bagaimana sistemJS mengendalikan kebergantungan? Anda boleh menentukan laluan dan kebergantungan modul anda dalam konfigurasi SystemJS. Apabila modul dimuatkan, Systemjs akan memuatkan kebergantungannya secara automatik.
Apakah faedah menggunakan JavaScript modular?
Modular JavaScript menyediakan beberapa faedah. Ia menjadikan kod anda lebih teratur dan lebih mudah untuk dikendalikan. Ia membolehkan anda menggunakan semula kod di bahagian -bahagian yang berlainan aplikasi anda. Ia juga memudahkan untuk menguji kod anda, kerana setiap modul boleh diuji secara bebas. Kaedah ini menerima objek yang menentukan pilihan konfigurasi. Beberapa pilihan yang boleh anda konfigurasikan termasuk laluan, peta, pakej, dan transpiler. Angular, React, dan Vue.js. Ia menyediakan loader modul sejagat yang boleh memuatkan modul dari mana -mana rangka kerja ini. Ia adalah bahagian utama ekosistem JavaScript, terutamanya untuk projek yang memerlukan pemuat modul sejagat. Dengan perkembangan teknologi JavaScript dan Web yang berterusan, SystemJS mungkin terus berkembang untuk memenuhi keperluan pemaju.
Atas ialah kandungan terperinci JavaScript Modular: Panduan Pemula untuk Systemjs & JSPM. 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











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.

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.

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing
