在vue-cli现代版本中未在块供应商处定义regeneratorRuntime

时间:2019-01-17 01:48:46

标签: babeljs babel vue-cli-3

@ vue / cli-service @ 3.2.0

vue-cli-service build --modern

dist/index.html抛出错误:

Error occur! ReferenceError: regeneratorRuntime is not defined
    at chunk-vendors.05e8cd04.js:1
来自regeneratorRuntime

node_modules在现代版本中不存在,并且源代码中的async/await也不会被转换。

package.json

"browserslist": [
    ">= 0.5% in CN",
    "iOS >= 9",
    "not ie > 0",
    "not Edge > 0",
    "not Android < 5",
    "not dead"
]

babel.config.js

module.exports = {
  presets: ['@vue/app'],
  plugins: [
    '@babel/plugin-proposal-optional-chaining',
    ['@babel/plugin-proposal-decorators', { legacy: true }],
    ['@babel/plugin-proposal-class-properties', { loose: true }],
  ],
}

我应该在条目中导入regeneratorRuntime吗?

import '@babel/runtime/regenerator'

=======更新========

chunk-vendorsindex之前执行,因此将regenerator导入main.js是没有用的。

<script type="module" src="/js/chunk-vendors.9c8f8aec.js"></script>
<script type="module" src="/js/index.06514fac.js"></script>

1 个答案:

答案 0 :(得分:0)

最后,我直接在html中引入了regenerator-runtime脚本。

<script src="//cdn.jsdelivr.net/npm/regenerator-runtime@0.13.1/runtime.min.js" defer></script>

<div id="app"></div>

regeneratorRuntime全局变量将在执行chunk-vendors之前定义。