这是ios和安卓的报错,微信小程序那边给出的建议是第三方框架的编译未能正确注入 regeneratorRuntime,请求大家支援!
- 发布:2022-01-06 09:02
- 更新:2022-06-01 21:59
- 阅读:1256
看下微信的回复
第三方框架的编译未能正确注入 regeneratorRuntime
Function("r", "regeneratorRuntime = r") is not a function
该问题通常是正确引入了 regeneratorRuntime,但是误将 regeneratorRuntime 编译至了严格模式(即含有 'use strict' )。
regeneratorRuntime 由于会尝试通过不使用 var 关键字直接赋值的方式,来声明全局 regeneratorRuntime 变量。这种方式在严格模式下会报错,因而尝试使用 new Function 的形式从严格模式跳入非严格模式,再次进行全局变量声明。然而小程序环境下不允许使用 new Function,因而初始化失败。
该问题通常是由于重复打包/编译导致的,即第一次编译时将 regeneratorRuntime 识别为非严格模式,而第二次编译时由于失去原始信息,识别为严格模式。
需要排查打包路径是否重复经过了 babel 或 webpack 等编译或打包。若使用第三方框架已经进行了 babel 编译;或者自行使用了babel编译,则需要关闭开发者工具的【将 JS 编译成 ES5】编译选项和 miniprogram-ci 的 es7: true (增强编译)选项。
我的小程序并没有使用 async/await 语法,但也报错
如果你的小程序引入了插件,而有插件没有正确配置编译模式,同样会出现上述问题。建议排查是否是插件导致。如果确认是插件导致,则需要插件提供方参考本指引解决问题。
另外的,npm 模块、第三方框架等同样可能引入 regeneratorRuntime 依赖。
https://developers.weixin.qq.com/community/develop/doc/0002ce07a58000a57c5da5e6456c09
-
回复 DCloud_UNI_GSQ: HBuilderX中选择项目,选择运行到小程序模拟器——>微信开发者工具——>点击预览——>使用8.0.16版本以上的微信预览,基础库2.21.3以上 就可以复现。我的微信:z826764385
2022-01-24 20:57
-
回复 z***@163.com: 项目是HBuilderX创建的还是CLI创建的,如果是CLI创建的补充一下依赖信息:npm run info
2022-01-26 16:05
6***@qq.com (作者)
是一样的报错吗
2022-01-06 11:58