SlideShare a Scribd company logo
1 of 18
Download to read offline
Hot Module
Replacement
(Angular)
Muh Afif Alfiano H - Team Army – BSI UII
Hot Module Replacement
- Apa itu HMR?
- Permasalahan yang kita hadapi sekarang?
- Bagaimana HMR bekerja?
- Apa kelebihan HMR?
- Bagaimana penerapannya di Angular?
Apa itu HMR
Mengembangkan aplikasi terutama menggunakan javascript seringkali perlu melakukan reload
browser setelah melakukan perubahan kode.
Tools seperti webpack sebenarnya sudah cukup mengakomodir dengan mode watchnya dimana
setiap kali ada perubahan kode, webpack akan mendeteksi dan melakukan rebuild kemudian
secara otomatis akan reload browser.
Permasalahan
Dengan adanya mode watch sudah cukup membantu untuk meningkatkan produktivitas kita
sebagai frontend developer untuk mengembangkan sebuah fitur. Tapi pernahkan teman-teman
berpikir jika setiap kali ada perubahan kode dan otomatis browser reload, maka hasilnya:
- Modal atau dialog box akan hilang dan kita perlu mengulang langkah sampai muncul
modal kembali
- State yang ada akan hilang dan perlu mengulang langkah dari awal lagi.
- Bisa menggunakan persistence state, misal pada localstorage. Tapi perlu menulis banyak
kode lagi.
- Bahkan perubahan kecil seperti pada file CSS saja akan reload dan lagi lagi kita harus
mengulang proses.
Bagaimana HMR bekerja?
HMR memungkinkan kita untuk melakukan perubahan, menambah, dan menghapus module
javascript walaupun aplikasi sedang berjalan tanpa adanya reload browser. Fitur ini dibuat oleh
webpack melalui HMR server yang berada di dalam webpack development server yang
berkomunikasi dengan HMR runtime yang ada pada browser melalui websocket.
Bagaimana HMR bekerja?
Bagaimana HMR bekerja?
1. Pertama kali build aplikasi, webpack akan generate manifest file berupa hash dan list of all
modules. Webpack akan melakukan inject HMR runtime di dalam file bundle.js
2. Ketika ada perubahan, webpack akan mendeteksi.
3. Webpack akan melakukan build baru dengan perubahan yang ada. Membuat manifest
baru dan membandingkan dengan yang lama. Proses ini dikenal dengan hot update.
4. Hot update ini akan menginfokan kepada HMR Server, yang mana jika ada perubahan
atau update akan dikirimkan ke HMR runtime.
5. Maka HMR runtime akan membuka file perubahan tersebut dan menggunakan loader
webpack untuk menangani perubahan. Jika CSS yang berubah maka yang dipanggil
adalah CSS Loader atau Style loader, tapi jika javascript yang berubah maka yang
dipanggil adalah Babel loader.
Bagaimana HMR Bekerja
Dengan menggunakan HMR, teman–teman bisa melihat perubahan secara cepat dan juga bisa
melihat file bundle js yang terdownload pada browser untuk melakukan perubahan.
Ada satu kekurangan jika hot update aplikasi gagal maka aplikasi akan reload untuk
mendapatkan file perubahan terbaru.
Kelebihan HMR
- Perubahan secara berkala tanpa adanya reload browser
- Meningkatkan produktivitas developer dalam mengembangkan fitur aplikasi
- Ketika sedang mengisi sebuah form, maka state yang telah terisi tidak akan hilang.
Penerapan di Angular
Untuk menggunakan hot module replacement kita perlu update angular minimal ke versi 11.
Kemudian cara menggunakannya cukup jalankan perintah ng serve –hmr .
Implementasi NG Serve HMR
Implementasi NG Serve HMR
NG Serve vs NG Serve –HMR
NG Serve HMR
Selisih hasil ng serve
–hmr pertama
dengan perubahan
selanjutnya adalah
44211ms - 5040ms =
+- 39 s
NG Serve HMR with Cache
Setelah memiliki cache
selisih waktu pertama
ng serve —hmr dengan
perubahan
selanjutnya adalah
22143ms - 5305ms =
+- 16s
NG Serve
Selisih hasil ng
serve pertama
dengan perubahan
selanjutnya adalah
27978ms - 3245ms
= +- 24 s
Referensi
- https://blog.bitsrc.io/webpacks-hot-module-replacement-feature-explained-43c13b169
986#:~:text=Hot%20Module%20Replacement%20is%20a,it%20can%20incur%20side%
20effects.
- https://suneetbansal.medium.com/angular-11-hot-module-replacement-save-developm
ent-time-b62ead8430db
Terimakasih

More Related Content

Similar to HMR Angular

Membuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan phpMembuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan php
Cahya Dwiana SN
 
Tutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web servicesTutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web services
muhammad arif nasution
 
Laporan tugas besar
Laporan tugas besarLaporan tugas besar
Laporan tugas besar
1110651055
 
Tugas4 0916-[tri bogi banjaransari]-[1511510404]
Tugas4 0916-[tri bogi banjaransari]-[1511510404]Tugas4 0916-[tri bogi banjaransari]-[1511510404]
Tugas4 0916-[tri bogi banjaransari]-[1511510404]
bobogi
 
Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]
Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]
Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]
Han'zo WEw
 

Similar to HMR Angular (20)

Installasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhpInstallasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhp
 
Html5 ppt
Html5 pptHtml5 ppt
Html5 ppt
 
Pengenalan Teknologi ajax
Pengenalan Teknologi ajaxPengenalan Teknologi ajax
Pengenalan Teknologi ajax
 
Chapter 1 perkenalan code igniter 2.0
Chapter 1 perkenalan code igniter 2.0Chapter 1 perkenalan code igniter 2.0
Chapter 1 perkenalan code igniter 2.0
 
Tutorial ci
Tutorial ciTutorial ci
Tutorial ci
 
Rekayasa web 0916 tugas 4 (individu)
Rekayasa web 0916 tugas 4 (individu)Rekayasa web 0916 tugas 4 (individu)
Rekayasa web 0916 tugas 4 (individu)
 
Tugas individu rekweb4
Tugas individu rekweb4Tugas individu rekweb4
Tugas individu rekweb4
 
Cms
CmsCms
Cms
 
Tug as ii
Tug as iiTug as ii
Tug as ii
 
Membuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan phpMembuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan php
 
Tutorial Form login menggunakan MVC
Tutorial Form login menggunakan MVCTutorial Form login menggunakan MVC
Tutorial Form login menggunakan MVC
 
Frame work php
Frame work phpFrame work php
Frame work php
 
Tutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web servicesTutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web services
 
How to connect laravel 5.1 blade view to database using mvc concept
How to connect laravel 5.1 blade view to database using mvc conceptHow to connect laravel 5.1 blade view to database using mvc concept
How to connect laravel 5.1 blade view to database using mvc concept
 
Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832
 
Tugasindividu6
Tugasindividu6Tugasindividu6
Tugasindividu6
 
Ppt html5
Ppt html5Ppt html5
Ppt html5
 
Laporan tugas besar
Laporan tugas besarLaporan tugas besar
Laporan tugas besar
 
Tugas4 0916-[tri bogi banjaransari]-[1511510404]
Tugas4 0916-[tri bogi banjaransari]-[1511510404]Tugas4 0916-[tri bogi banjaransari]-[1511510404]
Tugas4 0916-[tri bogi banjaransari]-[1511510404]
 
Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]
Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]
Tugas4 0916-[handitiya ciptaning pratama]-[1511510594]
 

HMR Angular

  • 1. Hot Module Replacement (Angular) Muh Afif Alfiano H - Team Army – BSI UII
  • 2. Hot Module Replacement - Apa itu HMR? - Permasalahan yang kita hadapi sekarang? - Bagaimana HMR bekerja? - Apa kelebihan HMR? - Bagaimana penerapannya di Angular?
  • 3. Apa itu HMR Mengembangkan aplikasi terutama menggunakan javascript seringkali perlu melakukan reload browser setelah melakukan perubahan kode. Tools seperti webpack sebenarnya sudah cukup mengakomodir dengan mode watchnya dimana setiap kali ada perubahan kode, webpack akan mendeteksi dan melakukan rebuild kemudian secara otomatis akan reload browser.
  • 4. Permasalahan Dengan adanya mode watch sudah cukup membantu untuk meningkatkan produktivitas kita sebagai frontend developer untuk mengembangkan sebuah fitur. Tapi pernahkan teman-teman berpikir jika setiap kali ada perubahan kode dan otomatis browser reload, maka hasilnya: - Modal atau dialog box akan hilang dan kita perlu mengulang langkah sampai muncul modal kembali - State yang ada akan hilang dan perlu mengulang langkah dari awal lagi. - Bisa menggunakan persistence state, misal pada localstorage. Tapi perlu menulis banyak kode lagi. - Bahkan perubahan kecil seperti pada file CSS saja akan reload dan lagi lagi kita harus mengulang proses.
  • 5. Bagaimana HMR bekerja? HMR memungkinkan kita untuk melakukan perubahan, menambah, dan menghapus module javascript walaupun aplikasi sedang berjalan tanpa adanya reload browser. Fitur ini dibuat oleh webpack melalui HMR server yang berada di dalam webpack development server yang berkomunikasi dengan HMR runtime yang ada pada browser melalui websocket.
  • 7. Bagaimana HMR bekerja? 1. Pertama kali build aplikasi, webpack akan generate manifest file berupa hash dan list of all modules. Webpack akan melakukan inject HMR runtime di dalam file bundle.js 2. Ketika ada perubahan, webpack akan mendeteksi. 3. Webpack akan melakukan build baru dengan perubahan yang ada. Membuat manifest baru dan membandingkan dengan yang lama. Proses ini dikenal dengan hot update. 4. Hot update ini akan menginfokan kepada HMR Server, yang mana jika ada perubahan atau update akan dikirimkan ke HMR runtime. 5. Maka HMR runtime akan membuka file perubahan tersebut dan menggunakan loader webpack untuk menangani perubahan. Jika CSS yang berubah maka yang dipanggil adalah CSS Loader atau Style loader, tapi jika javascript yang berubah maka yang dipanggil adalah Babel loader.
  • 8. Bagaimana HMR Bekerja Dengan menggunakan HMR, teman–teman bisa melihat perubahan secara cepat dan juga bisa melihat file bundle js yang terdownload pada browser untuk melakukan perubahan. Ada satu kekurangan jika hot update aplikasi gagal maka aplikasi akan reload untuk mendapatkan file perubahan terbaru.
  • 9. Kelebihan HMR - Perubahan secara berkala tanpa adanya reload browser - Meningkatkan produktivitas developer dalam mengembangkan fitur aplikasi - Ketika sedang mengisi sebuah form, maka state yang telah terisi tidak akan hilang.
  • 10. Penerapan di Angular Untuk menggunakan hot module replacement kita perlu update angular minimal ke versi 11. Kemudian cara menggunakannya cukup jalankan perintah ng serve –hmr .
  • 13. NG Serve vs NG Serve –HMR
  • 14. NG Serve HMR Selisih hasil ng serve –hmr pertama dengan perubahan selanjutnya adalah 44211ms - 5040ms = +- 39 s
  • 15. NG Serve HMR with Cache Setelah memiliki cache selisih waktu pertama ng serve —hmr dengan perubahan selanjutnya adalah 22143ms - 5305ms = +- 16s
  • 16. NG Serve Selisih hasil ng serve pertama dengan perubahan selanjutnya adalah 27978ms - 3245ms = +- 24 s