我正在使用Laravel mix编译我的
javascript文件,因为我对Babel和package.json不是很了解,我想问一下Laravel Mix是否支持ES8,尤其是async / await?
如果我尝试一下,我无法判断Mix是否正在异步/等待ES5,或者我的浏览器是否支持async / await,这是最新版本.我仍然希望将它转换为ES2015,因此应用程序仍然适用于仅支持ES5的浏览器.
解决方法
async / await与Laravel Mix:
如果您使用Laravel Mix开箱即用,并使用async并等待您收到以下错误消息:
Uncaught ReferenceError: regeneratorRuntime is not defined
但是Laravel Mix使用Babel来支持ES2015.如果需要,我们可以自定义编译.
要使异步/等待工作,请使用以下内容将.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,但你需要它才能使async / await功能正常工作.
ES8:
如上所示,您可以在Babel中使用不同的预设阶段.使用它们,您可以使用ES8或更高版本中包含的功能.例如,stage-3带有async / await功能.
他们的网站上有一个overview of the stages.