ES6 -- Babel 轉碼器
前言
我們都知道,es6是JavaScript的下一代標準,但現代瀏覽器對ES6新特性支援度不高,所以要想在瀏覽器中直接使用ES6的新特性就得藉助別的工具來實現。
Babel是一個廣泛使用的轉碼器,babel可以將ES6程式碼完美地轉換為ES5程式碼,所以我們不用等到瀏覽器的支援就可以在專案中使用ES6的特性。
配置檔案 .babelrc
Babel 的配置檔案是.babelrc,存放在專案的根目錄下。使用 Babel 的第一步,就是配置這個檔案。基本格式如下
{
"presets": [], // presets欄位設定轉碼規則
"plugins": []
}
注意,以下所有 Babel 工具和模組的使用,都必須先寫好.babelrc
。
babel-cli
Babel 提供babel-cli工具,用於命令列轉碼。
npm install --g babel-cli
babel ./src/index.js -o ./src/main.js
babel-preset-es2015
上述編譯其實並沒有進行,而是原樣輸出。這是因為我們沒有安裝相應的外掛,官方提示我們需要安裝 babel-reset-es2015
npm install --save-dev babel-preset-es2015
babel-core
某些程式碼需要呼叫Babel的API進行轉碼,就要使用babel-core模組。
npm install --save-dev babel-core
babel-polyfill
Babel預設只轉換新的JavaScript句法(syntax),而不轉換新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全域性物件,以及一些定義在全域性物件上的方法(比如Object.assign)都不會轉碼。
舉例來說,ES6在Array物件上新增了Array.from方法。Babel就不會轉碼這個方法。如果想讓這個方法執行,必須使用babel-polyfill,為當前環境提供一個墊片。
npm install --save-dev babel-polyfill
然後,在指令碼頭部,加入如下一行程式碼。
import 'babel-polyfill'
總結
在前端工程化越來越流行的今天,es6 + vue/ng/react + webpack。已經成為主流。
es6只是第一步,就是需要了解babel,其實難就難在配置這裡。願大家共勉,一起攀登這一座座大山!
相關文章
- 使用Babel轉碼 將es6轉為es5Babel
- 入門babel--實現一個es6的class轉換器Babel
- ES6和BabelBabel
- Babel轉碼快速入門Babel
- 使用 Babel 將基於 ES6 的 SAP UI5 的程式碼轉譯成傳統 JavaScript 程式碼BabelUIJavaScript
- 【爬坑日記】使用webpack、babel-loader/babel-polyfill解決ie瀏覽器不支援es6WebBabel瀏覽器
- ES6 / TypeScript / Babel / C# 中的 super(base)TypeScriptBabelC#
- babel是如何編譯es6 class和extends的Babel編譯
- ES6 系列之 Babel 是如何編譯 Class 的(上)Babel編譯
- ES6 系列之 Babel 是如何編譯 Class 的(下)Babel編譯
- ES6系列之Babel是如何編譯Class的(上)Babel編譯
- Babel 一下 ES6 中的類及繼承Babel繼承
- 將ES6程式碼轉換為ES5程式碼
- stage?es6?es7?速覽javascript版本和babel配置JavaScriptBabel
- 通過 babel-node 執行 ES6 import/export 語法BabelImportExport
- ES6 -> Javascript的類與繼承在Babel的實現JavaScript繼承Babel
- ES6 系列之 Babel 將 Async 編譯成了什麼樣子Babel編譯
- ES6 系列之 Babel 將 Generator 編譯成了什麼樣子Babel編譯
- ES6系列之Babel將Generator編譯成了什麼樣子Babel編譯
- 玩轉ES6新特性
- babel-polyfill VS babel-runtime VS babel-preset-envBabel
- JavaScript 工作原理之十五-類和繼承及 Babel 和 TypeScript 程式碼轉換探祕JavaScript繼承BabelTypeScript
- 02.ElementUI原始碼學習:babel配置UI原始碼Babel
- babel-polyfill VS babel-runtimeBabel
- ES6 Promise 用法講解(轉)Promise
- 小邵教你玩轉ES6
- [譯] 誤解 ES6 模組,升級 Babel 的一個解決方案(淚奔)Babel
- What is Babel?Babel
- 關於babel-polyfill和babel-runtimeBabel
- Codensity T408 影片轉碼器
- Mac視訊轉碼器EditReady for MacMac
- webpack 學習筆記:實戰之 babel 編碼Web筆記Babel
- babel能不能分析程式碼然後按需polyfill ?Babel
- es6 Iterator遍歷器
- 從babel實現es6類的繼承來深入理解js的原型及繼承Babel繼承JS原型
- babel 與 astBabelAST
- webpack – babel 篇WebBabel
- webpack - babel 篇WebBabel