0Pricing
React Academy · Pelajaran

Federasi Modul: Impor Runtime Dinamis

Pahami cara Webpack Module Federation memuat modul jarak jauh saat runtime tanpa memasukkannya ke dalam bundel host.

Federasi Modul: Impor Runtime Dinamis adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Masalah yang Diatasi Module Federation

Dalam organisasi pengembangan antarmuka multitim, beberapa aplikasi yang diterapkan secara independen sering kali perlu berbagi komponen antarmuka dan utilitas. Menerbitkannya ke npm memerlukan peningkatan versi, rilis baru, dan penerapan ulang penuh untuk setiap aplikasi pemakai—sehingga menciptakan keterikatan erat antartim dan siklus iterasi yang lambat.

Pendekatan npm dan Kekurangannya

Pendekatan tradisional, yaitu menerbitkan kode bersama sebagai paket npm, berarti bahwa memperbarui komponen tombol bersama memerlukan langkah-langkah berikut: memperbarui paket npm, menerbitkan versi baru, memperbarui package.json setiap aplikasi pemakai, membangun ulang dan menerapkan ulang setiap aplikasi pemakai. Module Federation menghapus semua langkah tersebut.

Cara Kerja Module Federation

Module Federation memungkinkan satu aplikasi, yaitu aplikasi penyedia, mengekspos modul JavaScript yang dimuat dan dijalankan aplikasi lain, yaitu aplikasi pemuat, saat berjalan, tanpa membangun ulang atau menerapkan ulang aplikasi pemuat. Saat pengguna memuat aplikasi pemuat, aplikasi tersebut mengambil modul aplikasi penyedia secara dinamis sesuai permintaan.

Dukungan Bawaan Webpack 5

Webpack 5 memperkenalkan Module Federation sebagai fitur bawaan utama melalui ModuleFederationPlugin. Sebelum Webpack 5, pola serupa memerlukan konfigurasi manual yang rumit atau plugin pihak ketiga. Plugin tersebut menangani seluruh pemuatan dinamis dan pengelolaan cakupan bersama secara otomatis.

Konsep Utama: Aplikasi Penyedia

Aplikasi penyedia adalah aplikasi yang diterapkan secara independen dan mengekspos satu atau beberapa modul—komponen React, utilitas, atau seluruh halaman fitur—untuk digunakan aplikasi lain. Aplikasi penyedia membangun manifest remoteEntry.js yang menjelaskan apa saja yang diekspos dan cara memuatnya.

Konsep Utama: Aplikasi Pemuat

Aplikasi pemuat adalah aplikasi yang menggunakan modul dari satu atau beberapa aplikasi penyedia. Aplikasi pemuat merujuk aplikasi penyedia berdasarkan nama dan URL dalam konfigurasi Webpack-nya. Saat kode aplikasi pemuat mengimpor modul dari aplikasi penyedia, runtime Module Federation Webpack mengambil dan menjalankannya secara dinamis dari URL aplikasi penyedia.

Konsep Utama: Modul Bersama

Modul bersama adalah pustaka, seperti React dan React DOM, yang seharusnya hanya dimuat sekali, meskipun aplikasi pemuat dan aplikasi penyedia sama-sama menyertakannya. Dengan menandai React sebagai singleton bersama, Module Federation memastikan hanya satu versi React yang berjalan—hal yang penting karena pengait React bermasalah jika ada beberapa instans.

Manifest remoteEntry.js

Saat Anda membangun aplikasi penyedia, Webpack menghasilkan berkas remoteEntry.js pada nama berkas yang dikonfigurasi. Berkas ini adalah manifest ringan sekaligus skrip pemula: berkas ini menyatakan modul apa yang diekspos aplikasi penyedia, mencantumkan URL potongannya, dan menginisialisasi cakupan bersama. Aplikasi pemuat mengunduh berkas ini terlebih dahulu untuk mengetahui apa yang ditawarkan aplikasi penyedia.

Mekanisme Pemuatan Saat Berjalan

Saat aplikasi pemuat menemukan import dari modul penyedia, aplikasi tersebut memeriksa apakah kode penyedia sudah dimuat. Jika belum, aplikasi tersebut mengambil remoteEntry.js dari URL penyedia, menginisialisasi cakupan bersama dengan menegosiasikan versi pustaka bersama, lalu mengunduh dan menjalankan potongan khusus yang berisi modul yang diminta.

Penerapan Deployment Independen

Sebuah tim menerapkan versi baru aplikasi penyedia, yaitu komponen Button yang diperbarui, tanpa menyentuh aplikasi pemuat. Pengguna berikutnya yang memuat aplikasi pemuat akan mendapatkan Button baru secara otomatis karena aplikasi pemuat selalu mengambil dari URL remoteEntry.js terbaru. Tidak perlu membangun ulang aplikasi pemuat, menerapkan ulang aplikasi pemuat, atau berkoordinasi.

Module Federation dibandingkan Bingkai Sebaris

Pola mikro-frontend lama menggunakan bingkai sebaris untuk mengisolasi bagian-bagian yang dimiliki tim. Bingkai sebaris memberikan isolasi yang kuat, tetapi membuat status bersama, perutean URL, dan gaya visual menjadi sangat sulit. Module Federation menjaga semuanya dalam konteks JavaScript yang sama, sehingga memungkinkan perutean bersama, status autentikasi bersama, dan gaya visual yang konsisten.

Manifest Penyedia Module Federation

Apa peran remoteEntry.js dalam Module Federation?

Ringkasan Pelajaran

Module Federation mengatasi masalah penerapan independen untuk kode frontend bersama dengan memungkinkan pemuatan modul saat berjalan. Aplikasi penyedia mengekspos modul melalui remoteEntry.js; aplikasi pemuat menggunakannya secara dinamis tanpa membangun ulang. Singleton bersama, yaitu React dan React DOM, mencegah pemuatan pustaka ganda. Arsitektur ini memungkinkan penerapan independen yang sebenarnya: perbarui aplikasi penyedia dan semua aplikasi pemuat akan segera melihat perubahan tersebut.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Federasi Modul: Impor Runtime Dinamis” gratis?

Ya — teks lengkap “Federasi Modul: Impor Runtime Dinamis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Federasi Modul: Impor Runtime Dinamis”?

Pahami cara Webpack Module Federation memuat modul jarak jauh saat runtime tanpa memasukkannya ke dalam bundel host. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Federasi Modul: Impor Runtime Dinamis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Federasi Modul: Impor Runtime Dinamis
  2. Mengonfigurasi Aplikasi React Host dan Jarak Jauh
  3. Berbagi Status dan Perutean Antar-Remote
  4. Pemberian Versi, Penerapan, dan Orkestrasi
← Kembali ke React Academy