小程序
小游戏
企业微信
微信支付
扫描小程序码分享
Can't find variable: regeneratorRuntime 报错
iOS和安卓进入体验版小程序都有此问题。用8.0.15版微信进入无此问题。
小程序体验版采用的是CI上传,增强编译已开。
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
regeneratorRuntime 相关报错排查指引
https://developers.weixin.qq.com/community/develop/doc/0002ce07a58000a57c5da5e6456c09
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
工具需要开启编译选项【增强编译】(旧版)或者【将JS编译成ES5】
miniprogram-ci 上传代码需要开启编译选项【增强编译】
原因 应该是8.0.16版本的微信更新了新的灰度基础库;
【开发、体验】 版本的小程序,开直播插件触发了 微信的灰度;[解释:老版本微信正常]
我们的小程序是在开启了【小程序直播插件】 才会触发 这个报错;不开启,体验版正常;
目前通过 CI 上传的需要开发者手动引入 runtime.js 进行适配,正式版暂不受影响,具体等官方公告通知。
留一个我们的解决办法给后面遇到类似情况的人:
我们在使用小程序 CI 上传代码前有一步预编译(不然代码包大小超标传不上去)。预编译采用了@babel/preset-env 这个插件。这个插件有用到 regeneratorRuntime,但是最近基础库不再暴露这个变量,需要我们自己引用。
最初尝试添加 @babel/transform-runtime 添加 regenerator 来解决,但插件越加越多,报错也越来越稀奇古怪。后来换了一个思路,让 @babel/preset-env 忽略 async await 语法的编译,把编译交给 CI 的增强编译 (es7: true) 来解决,最后成功。
附上 @babel/preset-env 的配置:
['@babel/preset-env', {
'targets': {
'chrome': 53,
'ios': 8
},
'exclude': ['@babel/plugin-transform-async-to-generator', '@babel/plugin-transform-regenerator'] // 让 babel 忽略 async await 的编译
}]
嗯,我们也遇到了同样的问题。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
regeneratorRuntime 相关报错排查指引
https://developers.weixin.qq.com/community/develop/doc/0002ce07a58000a57c5da5e6456c09
工具需要开启编译选项【增强编译】(旧版)或者【将JS编译成ES5】
miniprogram-ci 上传代码需要开启编译选项【增强编译】
原因 应该是8.0.16版本的微信更新了新的灰度基础库;
【开发、体验】 版本的小程序,开直播插件触发了 微信的灰度;[解释:老版本微信正常]
我们的小程序是在开启了【小程序直播插件】 才会触发 这个报错;不开启,体验版正常;
目前通过 CI 上传的需要开发者手动引入 runtime.js 进行适配,正式版暂不受影响,具体等官方公告通知。
留一个我们的解决办法给后面遇到类似情况的人:
我们在使用小程序 CI 上传代码前有一步预编译(不然代码包大小超标传不上去)。预编译采用了@babel/preset-env 这个插件。这个插件有用到 regeneratorRuntime,但是最近基础库不再暴露这个变量,需要我们自己引用。
最初尝试添加 @babel/transform-runtime 添加 regenerator 来解决,但插件越加越多,报错也越来越稀奇古怪。后来换了一个思路,让 @babel/preset-env 忽略 async await 语法的编译,把编译交给 CI 的增强编译 (es7: true) 来解决,最后成功。
附上 @babel/preset-env 的配置:
['@babel/preset-env', {
'targets': {
'chrome': 53,
'ios': 8
},
'exclude': ['@babel/plugin-transform-async-to-generator', '@babel/plugin-transform-regenerator'] // 让 babel 忽略 async await 的编译
}]
嗯,我们也遇到了同样的问题。