使用Babel將單獨的js文件 中的 ES6轉碼為ES5


 

如果你並沒有接觸過ES6,當你看到下面的代碼時,肯定是有點懵逼的(這是什么鬼?心中一萬頭神獸奔騰而過),但是你沒看錯,這就是ES6。不管你看不看它,它都在這里。

1
2
3
4
5
6
7
8
9
10
var a = (msg) => () => msg;
 
var bobo = {
  _name: "BoBo",
  _friends: [],
  printFriends() {
    this._friends.forEach(f =>
      console.log(this._name + " knows " + f));
  }
};

實際上,上面的這段代碼通過Babel轉換后,會變成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"use strict";
 
var a = function a(msg) {
  return function () {
    return msg;
  };
};
 
var bobo = {
  _name: "BoBo",
  _friends: [],
  printFriends: function printFriends() {
    var _this = this;
 
    this._friends.forEach(function (f) {
      return console.log(_this._name + " knows " + f);
    });
  }
};

好,言歸正傳,我們嘗試下用一些方法來實現上面的轉碼效果吧。

1、直接安裝Babel法:

1.1) 首先全局安裝Babel。

1
2
3
4
5
$ npm install -g babel-cli
 
//也可以通過直接將Babel安裝到項目中,在項目根目錄下執行下面命令,同時它會自動在package.json文件中的devDependencies中加入babel-cli
//在執行安裝到項目中命令之前,要先在項目根目錄下新建一個package.json文件。
$ npm install -g babel-cli --save-dev

如果將babel直接安裝到項目中,它會自動在package.json文件中的devDependencies中加入babel-cli。如下所示:

1
2
3
4
5
6
//......
{
  "devDependencies": {
    "babel-cli": "^6.22.2"
  }
}

1.2) Babel的配置文件是.babelrc,存放在項目的根目錄下。使用Babel的第一步,就是配置這個文件。

這個文件的完整文件名是 “.babelrc”,注意最前面是有個“.”的。如果老是提示 “必須鍵入文件名” 的錯誤,把文件名改成“.babelrc.”,注意是前后都有一個點,這樣就可以保存成功了

1
2
3
4
{
  "presets": [],
  "plugins": []
}

1.3) presets字段設定轉碼規則,官方提供以下的規則集,你可以根據需要安裝。

點擊此處到Babel中文官網presets配置頁面:Babel Plugins

1
2
3
4
5
6
7
8
9
10
11
# ES2015轉碼規則
$ npm install --save-dev babel-preset-es2015
 
# react轉碼規則
$ npm install --save-dev babel-preset-react
 
# ES7不同階段語法提案的轉碼規則(共有4個階段),選裝一個
$ npm install --save-dev babel-preset-stage-0
$ npm install --save-dev babel-preset-stage-1
$ npm install --save-dev babel-preset-stage-2
$ npm install --save-dev babel-preset-stage-3

1.4) 根據官網的提示,當我們用npm安裝好這些插件工具之后,我們需要將這些規則加入到.babelrc中去。如下所示:

1
2
3
4
5
6
7
8
{
    "presets": [
      "es2015",
      "react",
      "stage-2"
    ],
    "plugins": []
  }

1.5) 轉碼、轉碼的規則:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 轉碼結果輸出到標准輸出
$ babel test.js
 
# 轉碼結果寫入一個文件
# --out-file 或 -o 參數指定輸出文件
$ babel a.js --out-file b.js
# 或者
$ babel a.js -o b.js
 
# 整個目錄轉碼
# --out-dir 或 -d 參數指定輸出目錄
$ babel src --out-dir lib
# 或者
$ babel src -d lib
 
# -s 參數生成source map文件
$ babel src -d lib -s

 

我這里只是使用了es2015轉碼規則,測試代碼截圖如下圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM