ES6 写法报错regeneratorRuntime is not defined

function* helloWorldGenerator() {
  yield 'hello';
  yield 'world';
  return 'ending';
}

var hw = helloWorldGenerator();
console.log(hw.next());

图片描述
环境是配置的babel,练了一天ES6都没问题,但是一旦用Generator函数就报这错,请问怎么解决?

下面是我配置的环境图片描述

图片描述

阅读 57k
5 个回答

现在来回答一下自己的问题,也方便遇到同样写es6却报上图红字错误的同志们,咯咯咯咯~ 我真棒~
首先babel基础包(不安装额外东西)并不是支持完整的es6语言,加上浏览器也不是支持所有的es6语言,如果你写的es6语言刚好撞上这样的情况了.


那么就需要babel的拓展包(Polyfill),网址链接描述

这是一个补完babel支持es6的拓展包,配置步骤为3个
1.打开命令行键入 npm install --save-dev babel-polyfill 安装polyfill
2.在webpack.config.js中最上面写上var babelpolyfill = require("babel-polyfill");
3.在自己的项目js文件中最开头写上import "babel-polyfill";
OK 这样就解决了 嘿嘿嘿

babel-polyfill是可以的,但是这玩意儿太大了
现在6.0版本的babel改成了插件的形式,现在推荐的是transform-runtime

babel-polyfill是一股脑把全部都给你添加到js文件中,而现在的transform-runtime将会判断你哪些需要加载的,有选择性的进行加载,并且后者也不会污染全局变量。

这个我在自己写demo的时候我也遇到了 然后我用了babel的一个插件。Runtime transform就是这个然后按照流程一步一步来就可以了

  1. 项目下执行
    npm install --save-dev babel-plugin-transform-runtime
  2. 配置.babelrc
    {
    "plugins": ["transform-runtime"]
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题