Laravel Mix 是否支持 ES8?
Does Laravel Mix support ES8?
我正在用 Laravel 混合编译我的 javascript 文件,由于我对 Babel 和 package.json 不是很了解,我想问一下 Laravel Mix支持ES8,特别是async/await?
如果我尝试,我无法判断 Mix 是否正在将 async/await 转译为 ES5,或者 async/await 是否仅受我的浏览器支持,这是最新版本。我仍然希望将其转换为 ES2015,以便该应用程序仍可在仅支持 ES5 的浏览器上运行。
异步/等待与Laravel混合:
如果您使用 Laravel 开箱即用并使用异步和等待,您会收到以下错误消息:
Uncaught ReferenceError: regeneratorRuntime is not defined
但是LaravelMix使用Babel来支持ES2015。如果需要,我们可以自定义编译。
要让 async / 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:
正如您在上面看到的,您可以在 Babel 中使用不同的预设阶段。通过它们,您可以使用 ES8 或更高版本中包含的功能。例如 stage-3 带来了异步/等待功能。
他们的网站上有 overview of the stages。
我正在用 Laravel 混合编译我的 javascript 文件,由于我对 Babel 和 package.json 不是很了解,我想问一下 Laravel Mix支持ES8,特别是async/await?
如果我尝试,我无法判断 Mix 是否正在将 async/await 转译为 ES5,或者 async/await 是否仅受我的浏览器支持,这是最新版本。我仍然希望将其转换为 ES2015,以便该应用程序仍可在仅支持 ES5 的浏览器上运行。
异步/等待与Laravel混合:
如果您使用 Laravel 开箱即用并使用异步和等待,您会收到以下错误消息:
Uncaught ReferenceError: regeneratorRuntime is not defined
但是LaravelMix使用Babel来支持ES2015。如果需要,我们可以自定义编译。
要让 async / 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:
正如您在上面看到的,您可以在 Babel 中使用不同的预设阶段。通过它们,您可以使用 ES8 或更高版本中包含的功能。例如 stage-3 带来了异步/等待功能。
他们的网站上有 overview of the stages。