taro版本:2.0.7
github地址:How to resolveregeneratorRuntime is not defined
怎么发生
在项目中使用async-await后,在VSCode中可以正常编译通过,但是在微信开发者工具中会报如下的错:
regeneratorRuntime is not defined
ReferenceError: regeneratorRuntime is not defined
at http://127.0.0.1:19904/appservice/pages/lucky/lucky.js:186:51
at http://127.0.0.1:19904/appservice/pages/lucky/lucky.js:230:6
at Object../node_modules/@tarojs/mini-runner/dist/loaders/wxTransformerLoader.js?!./src/pages/lucky/lucky.jsx?taro&type=script&parse=PAGE& (http://127.0.0.1:19904/appservice/pages/lucky/lucky.js:522:2)
at __webpack_require__ (http://127.0.0.1:19904/appservice/runtime.js:80:30)
at Module../src/pages/lucky/lucky.jsx?taro&type=script&parse=PAGE& (http://127.0.0.1:19904/appservice/pages/lucky/lucky.js:1549:173)
at __webpack_require__ (http://127.0.0.1:19904/appservice/runtime.js:80:30)
at Module../src/pages/lucky/lucky.jsx (http://127.0.0.1:19904/appservice/pages/lucky/lucky.js:1532:97)
at __webpack_require__ (http://127.0.0.1:19904/appservice/runtime.js:80:30)
at checkDeferredModules (http://127.0.0.1:19904/appservice/runtime.js:46:23)
at Array.webpackJsonpCallback [as push] (http://127.0.0.1:19904/appservice/runtime.js:33:19)
如何解决
- 安装 babel-plugin-transform-runtime 和 babel-runtime:
yarn add babel-plugin-transform-runtime --dev yarn add babel-runtime
- 在项目 config/index.js 的 babel 配置中增加 transform-runtime 配置:
babel: { sourceMap: true, presets: [ [ 'env', { modules: false } ] ], plugins: [ 'transform-decorators-legacy', 'transform-class-properties', 'transform-object-rest-spread', ['transform-runtime', { "helpers": false, "polyfill": false, "regenerator": true, "moduleName": 'babel-runtime' }] ] }
至此就以大功告成,可以成功运行了。
Tips:建议将微信开发者工具中的
详情
—本地设置
—ES6转ES5
和增强编译
勾中。