2017-08-26 58 views
5

我正在編譯我的JavaScript文件與Laravel混合,因爲我不是很瞭解但Babel和package.json,我想問Laravel Mix是否支持ES8,尤其是異步/等待?Laravel Mix是否支持ES8?

如果我嘗試它,我無法分辨Mix是否正在向ES5傳輸異步/等待,或者是否只有我的瀏覽器(最新版本)支持異步/等待。我仍然希望將其轉換爲ES2015,因此該應用程序仍然適用於僅支持ES5的瀏覽器。

+2

Laravel Mix在引擎蓋下使用了babel,如果將正確的插件添加到babel,則支持async/await語法。我目前正在調查如何做到這一點,我會告訴你。 – Cobolt

+2

@Cobolt偉大的,任何幫助,將不勝感激。興奮地知道你的調查結果如何,我很難過,因爲我不知道從哪裏開始尋找,我已經Google搜索了很多,但無濟於事。 – jcsoriano

回答

11

異步/等待與Laravel混合:

如果使用Laravel混合開箱和使用異步和等待您會收到以下錯誤信息:

Uncaught ReferenceError: regeneratorRuntime is not defined

但Laravel混合使用巴貝爾以支持ES2015。如果需要,我們可以自定義編譯。

要獲得異步/ AWAIT工作,文件.babelrc添加到您的根目錄與此內容:

{ 
    "presets": ["es2015", "stage-3"], 
    "plugins": [ 
    "transform-runtime" 
    ] 
} 

並安裝所需的NPM包:

npm install babel-preset-es2015 babel-preset-stage-3 babel-plugin-transform-runtime --save-dev 

重要的事情(這引起錯誤)是transform-runtime插件。它沒有與Laravel Mix混合,但您需要它才能獲得異步/等待功能。

ES8:

正如您上面所看到的,你可以在通天使用不同的預設階段。藉助它們,您可以使用ES8或更高版本中包含的功能。例如階段-3帶來了異步/等待功能。

他們的網站上有一個overview of the stages

+3

它的.babelrc而不是.bashrc,對吧? – MartinSuecia

+0

@MartinSuecia你是對的。修復。 –

+3

爲什麼這個答案沒有數百個upvotes?該死的輝煌,你救了我幾個小時,出色的工作! – Mjh