BabelJS - Babel Preset

Babel preset adalah detail konfigurasi babel-transpiler yang menyuruhnya untuk mentranspilasinya dalam mode yang ditentukan. Berikut adalah beberapa preset paling populer yang akan kita bahas di bab ini -

  • ES2015
  • Env
  • React

Kita perlu menggunakan preset yang memiliki lingkungan di mana kita ingin kode diubah. Misalnya, preset es2015 akan mengubah kode menjadi es5 . Preset dengan nilai env juga akan dikonversi ke es5 . Ini juga memiliki fitur tambahan, yaitu opsi. Jika Anda ingin fitur tersebut didukung pada versi terbaru browser, babel akan mengonversi kode hanya jika tidak ada dukungan fitur pada browser tersebut. Dengan Preset react , Babel akan mentranspilasi kode kapan harus bereaksi.

Untuk bekerja dengan Preset, kita perlu membuat file .babelrc di folder root proyek kita. Untuk menunjukkan kerjanya, kami akan membuat pengaturan proyek seperti yang ditunjukkan di bawah ini.

perintah

npm init

Kita harus menginstal preset babel yang dibutuhkan sebagai berikut bersama dengan babel cli, babel core, dll.

Babel 6 paket

npm install babel-cli babel-core babel-preset-es2015 --save-dev

Paket Babel 7

npm install @babel/cli @babel/core @babel/preset-env --save-dev

Note - babel-preset-es2015 tidak berlaku lagi babel 7 dan seterusnya.

es2015 or @babel/env

Buat file .babelrc di root proyek (babel 6) -

Di .babelrc, presetnya adalah es2015. Ini adalah indikasi ke kompiler babel bahwa kita ingin kodenya diubah menjadi es2015.

Untuk babel 7, kita perlu menggunakan preset sebagai berikut -

{
   "presets":["@babel/env"]
}

Ini package.json setelah instalasi -

Karena kami telah menginstal babel secara lokal, kami telah menambahkan perintah babel di bagian skrip di package.json.

Mari kita kerjakan contoh sederhana untuk memeriksa transpiling menggunakan preset es2015.

Contoh

main.js

let arrow = () => {
   return "this is es6 arrow function";
}

Ditransformasikan ke es5 seperti yang ditunjukkan di bawah ini.

perintah

npx babel main.js --out-file main_es5.js

main_es5.js

"use strict";

var arrow = function arrow() {
   return "this is es6 arrow function";
};

Env

Dengan menggunakan preset Env, Anda dapat menentukan lingkungan tempat kode terakhir ditranspilasi.

Kami akan menggunakan pengaturan proyek yang sama yang dibuat di atas dan mengubah preset dari es2015 ke env seperti yang ditunjukkan di bawah ini.

Selain itu, kita perlu menginstal babel-preset-env. Kami akan menjalankan perintah yang diberikan di bawah ini untuk menginstal yang sama.

perintah

npm install babel-preset-env --save-dev

Kami akan mengkompilasi main.js lagi dan melihat hasilnya.

main.js

let arrow = () => {
   return "this is es6 arrow function";
}

perintah

npx babel main.js --out-file main_env.js

main_env.js

"use strict";

var arrow = function arrow() {
   return "this is es6 arrow function";
};

Kami telah melihat kode yang ditranspilasi adalah es5. Jika kita tahu lingkungan tempat kode kita akan dieksekusi, kita dapat menggunakan preset ini untuk menentukannya. Misalnya, jika kami menetapkan browser sebagai 1 versi terakhir untuk chrome dan firefox seperti yang ditunjukkan di bawah ini.

perintah

npx babel main.js --out-file main_env.js

main_env.js

"use strict";

let arrow = () => {
   return "this is es6 arrow function";
};

Kami sekarang mendapatkan sintaks fungsi panah apa adanya. Ini tidak ditranslasikan menjadi sintaks ES5. Ini karena lingkungan yang kita ingin kode kita dukung, sudah memiliki dukungan untuk fungsi panah.

Babel menangani kompilasi kode berdasarkan lingkungan menggunakan babel-preset-env. Kami juga dapat menargetkan kompilasi berdasarkan lingkungan nodejs seperti yang ditunjukkan di bawah ini

Kompilasi terakhir dari kode tersebut seperti yang ditunjukkan di bawah ini.

perintah

npx babel main.js --out-file main_env.js

main_env.js

"use strict";

let arrow = () => {
   return "this is es6 arrow function";
};

Babel mengkompilasi kode sesuai versi nodejs saat ini.

React Preset

Kita bisa menggunakan react preset saat kita menggunakan Reactjs. Kami akan mengerjakan contoh sederhana dan menggunakan preset react untuk melihat hasilnya.

Untuk menggunakan preset, kita perlu menginstal babel-preset-react (babel 6) sebagai berikut -

npm install --save-dev babel-preset-react

Untuk babel 7, adalah sebagai berikut -

npm install --save-dev @babel/preset-react

Perubahan pada .babelrc adalah sebagai berikut untuk babel6 -

Untuk babel 7

{
   "presets": ["@babel/preset-react"]
}

main.js

<h1>Hello, world!</h1>

perintah

npx babel main.js --out-file main_env.js

main_env.js

React.createElement(
   "h1",
   null,
   "Hello, world!"
);

Kode dari main.js diubah menjadi sintaks reactjs dengan preset: react.