Laravel Mix是否支持ES8?

jcs*_*ano 6 async-await laravel laravel-mix es2017

我正在使用Laravel mix编译我的javascript文件,因为我对Babel和package.json不是很了解,我想问一下Laravel Mix是否支持ES8,尤其是async/await?

如果我尝试一下,我无法判断Mix是否正在异步/等待ES5,或者我的浏览器是否支持async/await,这是最新版本.我仍然希望将它转换为ES2015,因此应用程序仍然适用于仅支持ES5的浏览器.

Mar*_*abe 19

async/await与Laravel Mix:

如果您使用Laravel Mix开箱即用,并使用async并等待您收到以下错误消息:

未捕获的ReferenceError:未定义regeneratorRuntime

但是Laravel Mix使用Babel来支持ES2015.如果需要,我们可以自定义编译.

要使异步/等待工作,.babelrc请使用以下内容将文件添加到根目录:

{
  "presets": ["es2015", "stage-3"],
  "plugins": [
    "transform-runtime"
  ]
}
Run Code Online (Sandbox Code Playgroud)

并安装所需的npm包:

npm install babel-preset-es2015 babel-preset-stage-3 babel-plugin-transform-runtime --save-dev
Run Code Online (Sandbox Code Playgroud)

重要的是(导致错误)是transform-runtime插件.它没有使用Laravel Mix,但你需要它才能使async/await功能正常工作.

ES8:

如上所示,您可以在Babel中使用不同的预设阶段.使用它们,您可以使用ES8或更高版本中包含的功能.例如,stage-3带有async/await功能.

他们对其网站上的各个阶段进行了概述.

  • 它是.babelrc而不是.bashrc,对吗? (4认同)
  • 建议你使用`babel-preset-env`.它包含es2015和stage-3.那你只需要`["env"]` (3认同)