2015-11-10 61 views
12

我試圖使用新的babel版本,並嘗試使用es2015預設babel似乎不能夠了解箭頭功能?babelyify 6與browserify和es2015預設不起作用

我上預安裝babel6如下:

transform: [['babelify', {sourceMap: false, stage: 0, optional: 'runtime', ignore: ["*.min.js"]}]] 

與babel6

transform: [['babelify', {"presets": ["es2015"]}]] 

不工作。爲什麼是這樣?

編輯

加入"stage-0"擺脫了語法錯誤消息,但採空我從能夠與錯誤擴展什麼:'this' is not allowed before super()時,我有INFACT得到了super()電話。

編輯

設置一個簡單的測試應用程序與一些ES7並試圖用巴貝爾核心要求掛鉤,同樣的問題。

編輯

好了,所以我已經把範圍縮小到0級在babeljs 6個工作不同的^。

以下是我已經注意到:

運行文件

require("babel-core/register")(
    { 
     presets: ["es2015", "stage-0"] 
    } 
); 

require("./app.js"); 

作品有:

class extendable { 
    constructor() { 
     console.log('extended') 
    } 
} 

class app extends extendable { 

    constructor() { 

     super(); 

     this.method(); 
     this.method2(); 
    } 

    method() { 
     // arrow functions 
     setTimeout(() => { 
      console.log("works") 
     }, 1000) 
    } 

    /** 
    * arrow function method 
    */ 
    method2 =() => { 
     // give an error: 'this' is not allowed before super() 
     this.state = "hello"; 
    } 
} 
new app(); 

所以我:

class extendable { 
    constructor() { 
     console.log('extended') 
    } 
} 

class app extends extendable { 

    constructor() { 

     super(); 

     this.method(); 
     this.method2(); 
    } 

    method() { 
     // arrow functions 
     setTimeout(() => { 
      console.log("works") 
     }, 1000) 
    } 

    /** 
    * arrow function method 
    */ 
    method2 =() => { 
     console.log('works') 
    } 
} 
new app(); 

不一起工作有點困惑。這真的是不正確的語法?我怎麼能夠使用這個pre-babel6?

+0

您是如何執行browserify/babelify的?你安裝了哪些版本的模塊? – CodingWithSpike

+0

我正在通過[module-deps](https://www.npmjs.com/package/module-deps)執行,所有內容都處於最新版本。 –

回答

6

這是一個Babeljs錯誤

希望這將看到一個快速的修復。

編輯#2942沒有引用相同的錯誤。以下是此錯誤後的問題:#3028

+0

#2942已關閉,他們說6.1.18已修復。只需更新npm並添加箭頭功能即可。依然爆發。這與babelify,如果它作出差異。 –

+0

同樣在這裏,我仍然遇到了Babel6的所有錯誤,我認爲這些錯誤是固定的錯誤,試圖重組我的班級,這些班級在5歲時完全沒問題,......有點累了。 – Marian

+2

我要測試並看看我是否仍然可以重現錯誤。但來自他們的博客:「並非所有的整合都已經更新,這是一個非常具有顛覆性的專業,所以請在我們順利解決問題時與我們聯繫。」所以我會建議堅持5直到大部分的錯誤已被修復 –

3

這取決於你如何執行browserify了一下,這是從babelify(https://github.com/babel/babelify)GitHub的庫說一下吧:

從CLI:

$ browserify script.js -o bundle.js \ 
-t [ babelify --presets [ es2015 react ] ] 

與節點:

browserify("./script.js") 
    .transform("babelify", {presets: ["es2015", "react"]}) 
    .bundle() 
    .pipe(fs.createWriteStream("bundle.js")); 
+0

'變換(「babelify」,{預設:[「es2015」,「react」]})'是什麼不起作用 –

+0

您是否安裝了預設? 'npm install --save-dev babel-preset-es2015' – Timon

+0

是的,我已經正確安裝了所有的東西 –

相關問題