babel 使用

Babel 是什么?

Babel 是一個(gè) JavaScript 編譯器

Babel 是一個(gè)工具鏈,主要用于將 ECMAScript 2015+ (ES6+)版本的代碼轉(zhuǎn)換為向后兼容的 JavaScript 語法,以便能夠運(yùn)行在當(dāng)前和舊版本的瀏覽器或其他環(huán)境中。下面列出的是 Babel 能為你做的事情:

  • 語法轉(zhuǎn)換
  • 通過 Polyfill 方式在目標(biāo)環(huán)境中添加缺失的特性 (通過 @babel/polyfill 模塊)
  • 源碼轉(zhuǎn)換 (codemods)

Babel 通過語法轉(zhuǎn)換器來支持新版本的 JavaScript 語法。

Babel用法

    1. 方法一:引入js文件
<script src="browser.min.js" charset="utf-8"></script>
<script type="text/babel">
    let a = 1;
        let show = s => s + 1;

        alert(show(a));
</script>

引入browser.min.js的作用是使瀏覽器支持babel,可以使用ES2015+的語法,注意script的type類型是text/babel,標(biāo)準(zhǔn)的瀏覽器無法解析這種類型的腳本,但是引入browser.min.js轉(zhuǎn)換js文件后,會(huì)根據(jù)該類型將script內(nèi)容執(zhí)行語法轉(zhuǎn)換,從而兼容低版本瀏覽器(IE6應(yīng)該是沒救了)

使用這種方式有個(gè)缺點(diǎn), 就是babel需要執(zhí)行js語法轉(zhuǎn)換,故頁面加載會(huì)相對(duì)慢些

    1. 方法二:編譯js文件
  1. 安裝node.js , 初始化項(xiàng)目
npm init -y
  1. 安裝babel-cli
npm i @babel/core @babel/cli @babel/preset-env -D

npm i @babel/polyfill -S

@babel/core babel核心代碼庫
@babel/cli babel命令庫
@babel/preset-env babel預(yù)設(shè)編譯項(xiàng)
@babel/polyfill babel兼容處理

  1. package.json文件添加執(zhí)行腳本
"scripts": {
    "build": "babel src -d dest"
}
  1. 添加.babelrc配置文件
{
    "presets": ["@babel/preset-env"]
}
  1. 執(zhí)行編譯
npm run build
  1. demo案例
    demo 結(jié)構(gòu)如下:


    image.png

package.json文件源碼:

{
  "name": "babel",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "babel src -d dest"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.5.0",
    "@babel/core": "^7.5.0",
    "@babel/preset-env": "^7.5.0"
  }
}

.babel 源文件:

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

a.js 腳本文件

let a = 1;
let show = s => s + 1;
alert(show(a));

index.html文件:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <script type="text/javascript" src="dest/a.js">
    </script>
  </body>
</html>

最終運(yùn)行效果:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容