Skip to main content

Belajar Babel Loader Javascript ES6

2020031319583407bf63e74fd402a5583504377dfd8829.png

Apa itu babel atau babel.js? Babel merupakan sebuah transpiler yang bertugas untuk mengubah sintaks JavaScript modern (ES6+) menjadi sintaks yang dapat didukung penuh oleh seluruh browser.

JavaScript merupakan bahasa pemrograman yang berkembang sangat pesat. Komunitasnya besar, dan tiap tahun selalu terdapat versi yang baru. 
Namun perkembangan yang pesat tadi ternyata membutuhkan waktu yang lama untuk diadaptasi oleh browser atau Node.js. Lalu jika kita ingin mencoba sintaks terbaru di JavaScript apakah kita perlu menunggu hingga seluruh browser berhasil mengadaptasi pembaharuan tersebut? Tentu tidak! 
Dengan babel Anda dapat menuliskan sintaks JavaScript versi terbaru tanpa khawatir memikirkan dukungan pada browser. Karena babel akan mengubah sintaks yang kita tuliskan menjadi kode yang dapat diterima browser.
Jika Anda penasaran bagaimana cara babel bekerja, babel menyediakan sebuah playground yang dapat kita manfaatkan untuk mengubah sintaks JavaScript modern (ES6+) menjadi sintaks lama. Untuk mencobanya, silakan Anda buka tautan berikut:
20200313195932ff6b88f0352e20c9c08f27fd89aff700.png
Pada playground tersebut kita juga dapat memilih preset yang kita inginkan. Secara default preset akan mengarah ES2015 (ES6).
Anda sudah tahu  sekilas mengenai babel. Nah pada webpack kita juga dapat menggunakan babel dalam bentuk loader. 
Walaupun webpack secara standarnya dapat memproses berkas JavaScript tanpa perlu bantuan loader, namun proses tersebut tidak mengubah sintaks yang kita tuliskan. 
Artinya jika kita menuliskan sintaks JavaScript modern, maka kita akan menemukannya juga pada berkas bundle.js.
2020031320001286d0cce40a7f1f8ac22836dcbab4867b.png
Walaupun saat ini Google Chrome dan Mozilla Firefox sudah mendukung penulisan sintaks ES6, namun setidaknya kita perlu sedikit peduli terhadap dukungan browser lama seperti Internet Explorer atau browser versi lama lainnya.
Untuk menggunakan babel pada webpack sebagai loader, kita perlu memasang tiga package menggunakan npm pada devDependencies
Yang pertama package @babel/core, yang kedua babel-loader, dan yang ketiga @babel/preset-env.

  1. npm install @babel/core babel-loader @babel/preset-env --save-dev


Package @babel/core merupakan package inti yang harus dipasang ketika kita hendak menggunakan babel, baik pada webpack maupun tools yang lain.
Package babel-loader merupakan package yang diperlukan untuk menggunakan babel sebagai loader pada webpack.
Yang terakhir package @babel/preset-env merupakan package preset yang akan kita gunakan untuk membantu babel-loader dalam melakukan tugasnya. 
@babel/preset-env merupakan preset cerdas yang memungkinkan kita menggunakan sintaks JavaScript terbaru tanpa menetapkan secara spesifik sintaks JavaScript versi apa yang kita gunakan.
Berkas package.json akan tampak seperti ini setelah memasang ketiga package tersebut:

  1. {

  2.   "name": "webclock",

  3.   "version": "1.0.0",

  4.   "description": "",

  5.   "main": "index.js",

  6.   "scripts": {

  7.     "build": "webpack"

  8.   },

  9.   "author": "",

  10.   "license": "ISC",

  11.   "dependencies": {

  12.     "jquery": "^3.4.1",

  13.     "moment": "^2.24.0"

  14.   },

  15.   "devDependencies": {

  16.     "@babel/core": "^7.8.4",

  17.     "@babel/preset-env": "^7.8.4",

  18.     "babel-loader": "^8.0.6",

  19.     "css-loader": "^3.4.2",

  20.     "style-loader": "^1.1.3",

  21.     "webpack": "^4.41.6",

  22.     "webpack-cli": "^3.3.11"

  23.   }

  24. }


Setelah berhasil memasang ketiga package tersebut, langkah selanjutnya kita dapat gunakan babel-loader dan preset-nya pada webpack configuration.

  1. const path = require("path");

  2.  

  3. module.exports = {

  4.     entry: "./src/index.js",

  5.     output: {

  6.         path: path.resolve(__dirname, "dist"),

  7.         filename: "bundle.js"

  8.     },

  9.     mode: "production",

  10.     module: {

  11.         rules: [

  12.             /* style and css loader */

  13.             {

  14.                 test: /\.css$/,

  15.                 use: [

  16.                     {

  17.                         loader: "style-loader"

  18.                     },

  19.                     {

  20.                         loader: "css-loader"

  21.                     }

  22.                 ]

  23.             },

  24.             /* babel loader */

  25.             {

  26.                 test: /\.js$/,

  27.                 exclude: "/node_modules/",

  28.                 use: [

  29.                     {

  30.                         loader: "babel-loader",

  31.                         options: {

  32.                             presets: ["@babel/preset-env"]

  33.                         }

  34.                     }

  35.                 ]

  36.             }

  37.         ]

  38.     }

  39. }


Ketika menerapkan rule untuk berkas .js, jangan lupa untuk menetapkan properti exclude dengan nilai “/node_modules/”. 
Apa artinya? Dengan menetapkan properti exclude itu berarti kita mengecualikan webpack untuk memproses berkas .js yang berada pada folder “node_modules”. 
Hal ini dapat meminimalisir proses yang tidak diperlukan, sehingga mempercepat proses build pada proyek kita.  
Lalu pada penerapan babel-loader juga kita menggunakan properti options dengan menetapkan properti presets di dalamnya. Pada properti presets kita tetapkan preset (dalam bentuk array literas) yang sudah kita pasang menggunakan npm, yaitu @babel/preset-env.
Setelah menggunakan babel loader pada webpack configuration, mari kita coba build dan buka kembali berkas bundle.js
Maka kode yang kita tuliskan dalam ES6 akan diubah dalam sintaks yang dapat diterima oleh seluruh browser.
20200313200507f7a720e39de819c62a15f1be147aa62e.png
Bahkan pada berkas bundle tersebut dipastikan sudah tidak terdapat lagi sintaks yang dituliskan menggunakan ES6.
20200313200535f035aab9b99622b9e95be3f0d98fc827.png
Namun walaupun sintaksnya sudah diubah, proyek akan tetap berjalan normal seperti biasanya.
Contoh: 
https://github.com/dicodingacademy/a163-bfwd-labs/tree/207-webclock-webpack-using-loader

Popular posts from this blog

Blogger: The Ins And Outs

Blogging adalah semua kemarahan saat ini. Ini adalah cara yang menyenangkan dan murah untuk membuat suara Anda terdengar di Internet. Melalui blogging, Anda dapat membuat pemikiran harian Anda (intim atau tidak) diketahui publik – dan dengan audiens yang lebih besar. Ini membuat layanan ini bagus untuk menyimpan buku harian (jika membuat buku harian publik adalah pilihan terbaik Anda), pemasaran (blogging adalah cara yang bagus untuk melakukan pemasaran – lebih dari itu nanti), dan berbagi informasi dan memperbarui. Mengapa Blog? Blogging adalah cara hidup. Ini mungkin salah satu kekuatan teknologi yang paling memungkinkan untuk menghantam Internet dalam beberapa tahun terakhir. Anehnya, itu telah memungkinkan keterlibatan yang lebih besar dari orang-orang dengan teknologi dan informasi. Hal yang hebat tentang blogging adalah mudah dipelajari dan mudah digunakan – terutama dengan layanan blogging seperti Blogger. Blog adalah, dalam pengertian teknis, perangkat lunak manajemen konten ya...

Blog Jalan Anda ke Bank

Blog Jalan Anda ke Bank Pernahkah Anda mendengar tentang Ledakan Pemasaran Blog? Blog adalah weblog, diperbarui mingguan atau harian. Ini adalah buku harian atau jurnal online. Blog memiliki menjadi lebih populer daripada situs web. Tidak perlu tahu HTML, tidak perlu mengatur file seperti pustakawan, tidak perlu mendesain halaman web! Kalian semua yang harus Anda lakukan adalah menulis apa pun yang muncul di pikiran Anda (saat Anda menulis buku harian atau jurnal ) dan blog di server blog gratis, seperti http://www.blogger.com/ atau http://www.wordpress.com/ ! Lihat! Anda telah membuat blog, yang anak cucu dapat menikmati. Anda telah bergabung dengan jajaran terpilih Dante, Shakespeare dan Goethe! Mesin pencari menyukai konten asli yang segar dan jika Anda dapat memberikan yang baik konten, blog Anda akan populer. Apa pun yang Anda tulis di blog atau situs Anda akan dibaca oleh mesin pencari. Menyediakan konten yang baik adalah tugas Anda. NS mesin pencari akan memastikan lalu lintas y...

Blog cara Anda untuk mendapatkan keuntungan

Semua orang telah mengambil tren blogging. Dan blogging telah mengambil skema menghasilkan uang. Jika Anda memiliki blog dan belum menggunakannya untuk menghasilkan uang secara online, maka Anda akan ditinggalkan oleh orang lain yang sudah mendapatkan keuntungan yang baik dari blog. Bagaimana mereka melakukannya? Menjual iklan melalui blog. Ini adalah cara paling umum untuk membuat blog menghasilkan pendapatan. Prosesnya sederhana. Jika blog Anda adalah salah satu yang lebih terkenal dan banyak dibaca, Anda dapat menjual ruang iklan sendirian. Tetapi untuk blog yang tidak begitu terkenal, ada layanan yang dapat digunakan untuk membuat program iklan. Yang banyak digunakan adalah Adsense. Adsense memungkinkan Anda memilih beberapa iklan yang agak terkait dengan isi situs Anda. Anda kemudian dibayar berdasarkan jumlah pembaca yang mengklik iklan untuk memeriksanya. Mengapa orang memilih Adsense adalah karena mereka bisa mendapatkannya secara gratis. Blog sebagai program afiliasi. Ini adal...