webstorm配置babel自動轉(zhuǎn)譯es6的兩種方法

最新的nodejs v7版本已經(jīng)支持大部分es6語法了,但總有那么幾個漏網(wǎng)之魚讓人不省心砾赔,webstorm作為爽的飛起的ide兽掰,擼起JavaScript代碼那是又好又快队他。本文就總結(jié)兩種配置babel自動轉(zhuǎn)譯es6到es5的方法。

第一種:簡單粗暴型寞蚌,所有語法轉(zhuǎn)譯成es5

  1. npm安裝babel
npm install -g babel-cli

2.npm安裝Babel的preset

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

3 工程路徑新建.babelrc文件田巴,內(nèi)容如下

{
  "presets": [
    "es2015"
  ]
}

4 打開Preference->Tools->File Watcher->Babel,
如何沒有,就點擊下面+號挟秤,選擇新建

Paste_Image.png

5 雙擊打開Babel壹哺,進行配置
重點是Watcher Seetings參數(shù):

  • Arguments:--source-maps --out-file $FileNameWithoutExtension$-compiled.js --presets es2015 $FilePath$

6 這樣就完成了自動轉(zhuǎn)換js的配置,新建aa.js文件測試艘刚,如下圖,自動生成aa-compiled.js文件管宵,這個文件就是轉(zhuǎn)譯后的文件:

Paste_Image.png

轉(zhuǎn)換效果如何呢?aa.js內(nèi)容

export default class A{

  constructor(){
    this.aa = 1;
    this.bb = 2;
  }
  test(){
    
  }
}

aa-compiled.js內(nèi)容:

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

/**
 * Created by cly on 2017/4/26.
 */
var A = function () {
  function A() {
    _classCallCheck(this, A);

    this.aa = 1;
    this.bb = 2;
  }

  _createClass(A, [{
    key: "test",
    value: function test() {}
  }]);

  return A;
}();

exports.default = A;

//# sourceMappingURL=aa-compiled.js.map

第二種:精細劃分型攀甚,僅僅把不支持import,export的語法進行es5轉(zhuǎn)譯

第一種轉(zhuǎn)譯我們會發(fā)現(xiàn)一個問題箩朴,就是所有語法全變成了es5,調(diào)試時還得在es6,es5之間切換秋度,簡直要精神分裂了呀炸庞,有木有!這樣我們直接用es5寫不就好了嗎荚斯!
有沒有方法埠居,只轉(zhuǎn)譯nodejs現(xiàn)在不支持的語法呢,據(jù)我所知事期,最新版node.js的v7.8版本拐格,除了export,import這些module依賴以外的語法,都完美支持了es6刑赶,將來v8,v9妥妥的完美兼容的節(jié)奏捏浊。那我們是不是只引入module依賴模塊的轉(zhuǎn)譯規(guī)則,是不是就搞定問題了撞叨?

查看babel官網(wǎng),可以找到如下圖

Paste_Image.png

點擊進入就是只安裝common js插件的方法
1 npm安裝

npm install --save-dev babel-plugin-transform-es2015-modules-commonjs

2 修改.babelrc文件金踪,改為如下:

// without options
{
  "plugins": ["transform-es2015-modules-commonjs"]
}

//或者 
//with options
{
  "plugins": [
    ["transform-es2015-modules-commonjs", {
      "allowTopLevelThis": true
    }]
  ]
}

2 修改打開Preference->Tools->File Watcher->Babel,修改Arguments參數(shù)的
--presets es2015-- plugins transform-es2015-modules-commonjs
3 新建bb.js測試浊洞,跟aa.js的結(jié)構(gòu)一樣。
bb.js內(nèi)容

export default class B{

  constructor(){
    this.aa = 1;
    this.bb = 2;
  }
  test(){

  }
}

轉(zhuǎn)譯后的bb-compiled.js內(nèi)容

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * Created by cly on 2017/4/26.
 */
class B {

  constructor() {
    this.aa = 1;
    this.bb = 2;
  }
  test() {}
}
exports.default = B;

//# sourceMappingURL=bb-compiled.js.map

是不是很簡單胡岔,快嘗試一下吧法希!

參考文獻

WebStorm配置Babel編譯環(huán)境
[nodejs v6+ 不兼容 ES6 import/export 優(yōu)雅解決方法]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市靶瘸,隨后出現(xiàn)的幾起案子苫亦,更是在濱河造成了極大的恐慌,老刑警劉巖怨咪,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屋剑,死亡現(xiàn)場離奇詭異,居然都是意外死亡诗眨,警方通過查閱死者的電腦和手機唉匾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匠楚,“玉大人巍膘,你說我怎么就攤上這事∮蟛荆” “怎么了峡懈?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長与斤。 經(jīng)常有香客問我逮诲,道長,這世上最難降的妖魔是什么幽告? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任梅鹦,我火速辦了婚禮,結(jié)果婚禮上冗锁,老公的妹妹穿的比我還像新娘齐唆。我一直安慰自己,他們只是感情好冻河,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布箍邮。 她就那樣靜靜地躺著,像睡著了一般叨叙。 火紅的嫁衣襯著肌膚如雪锭弊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天擂错,我揣著相機與錄音味滞,去河邊找鬼。 笑死,一個胖子當著我的面吹牛剑鞍,可吹牛的內(nèi)容都是我干的昨凡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼蚁署,長吁一口氣:“原來是場噩夢啊……” “哼便脊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起光戈,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤哪痰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后久妆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晌杰,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年镇饺,在試婚紗的時候發(fā)現(xiàn)自己被綠了乎莉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片送讲。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡奸笤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哼鬓,到底是詐尸還是另有隱情监右,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布异希,位于F島的核電站健盒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏称簿。R本人自食惡果不足惜扣癣,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憨降。 院中可真熱鬧父虑,春花似錦、人聲如沸授药。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悔叽。三九已至莱衩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娇澎,已是汗流浹背笨蚁。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赚窃。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓册招,卻偏偏與公主長得像,于是被迫代替她去往敵國和親勒极。 傳聞我的和親對象是個殘疾皇子是掰,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容