2016-09-30 19 views
8

我們正在使用異步/等待我們的Meteor項目。這個語法在我們的resolvers.js中無處不在。在我們升級到Node 6.7之前,一切工作都正常。現在,它顯示了這個錯誤,每次我們嘗試構建它的時候:Babel:「關鍵字'await'是保留的(53:24)」

「關鍵字‘等待’被保留(53:24)」

enter image description here

有誰知道如何解決這個問題?

這裏是我的.babelrc文件的內容:

{ 
    "presets": ["es2015", "stage-2", "react"], 
    "plugins": ["react-require", "babel-root-slash-import"] 
} 
+0

注意,指數運算符從'階段-3'(由'階段2'隱含地包括)移動到預設['es2016'](HTTP ://babeljs.io/docs/plugins/preset-es2016/),async/await和trailing function逗號轉移到['es2017'](http://babeljs.io/docs/plugins/preset-es2016/ ),所以你應該使用它們。 – Frxstrem

+0

我試圖將「es2015」更改爲「es2017」,但仍然是相同的錯誤。 –

+0

你不應該把'es2015'改成'es2017',你應該添加'es2016'和'es2017'而不是'stage-2'。 ('[「es2015」,「es2016」,「es2017」,「react」]')。無論如何,這不是一個可能的解決方案,只是一個「提醒」它即將改變。 – Frxstrem

回答

1

好吧,我發現了一個解決我自己的問題。由於Meteor已經有一個支持ES6語法的包,因此我在做Meteor構建時只排除了.babelrc。我沒有完全刪除.babelrc,因爲我將在測試中以及運行不觸發Meteor構建的Storybook時需要它。

18

只是爲了防止其他人搜索這個相同的問題,在我的情況下,這是用戶錯誤,我。我忘了將async關鍵字放在函數名稱之前。 enter image description here

1

等待單獨是無效的語法。伺機需要像一個異步函數內部被調用:

var aFunction = async function() { 
    let aResponse = await get('aValue'); 
}