收藏
回答

微信版本8.0.16,进入体验版小程序遇到基础库加载问题

Can't find variable: regeneratorRuntime 报错

iOS和安卓进入体验版小程序都有此问题。用8.0.15版微信进入无此问题。

小程序体验版采用的是CI上传,增强编译已开。

最后一次编辑于  2022-01-05
回答关注问题邀请回答
收藏

6 个回答

  • chyi
    chyi
    2022-01-05

    regeneratorRuntime 相关报错排查指引

    https://developers.weixin.qq.com/community/develop/doc/0002ce07a58000a57c5da5e6456c09


    2022-01-05
    有用
    回复
  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2022-01-05

    工具需要开启编译选项【增强编译】(旧版)或者【将JS编译成ES5】

    miniprogram-ci 上传代码需要开启编译选项【增强编译】

    2022-01-05
    有用
    回复
  • 追
    2022-01-07

    原因 应该是8.0.16版本的微信更新了新的灰度基础库;

    【开发、体验】 版本的小程序,开直播插件触发了 微信的灰度;[解释:老版本微信正常]

    我们的小程序是在开启了【小程序直播插件】 才会触发 这个报错;不开启,体验版正常;


    2022-01-07
    有用 1
    回复 1
    • 追
      2022-01-07
      如果开启小程序直播插件;开启【将 JS 编译成 ES5】也一样会报错
      2022-01-07
      回复
  • brave
    brave
    2022-01-05

    目前通过 CI 上传的需要开发者手动引入 runtime.js 进行适配,正式版暂不受影响,具体等官方公告通知。

    2022-01-05
    有用 1
    回复 2
    • Brook
      Brook
      2022-01-05
      求大佬详解,现在体验版测试阻塞ing
      2022-01-05
      回复
    • Ailsa
      Ailsa
      2022-01-12回复Brook
      npm i regenerator-runtime --save-dev         require('regenerator-runtime')
      2022-01-12
      回复
  • Brook
    Brook
    2022-01-06

    留一个我们的解决办法给后面遇到类似情况的人:

    我们在使用小程序 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 的编译

                }]


    2022-01-06
    有用
    回复
  • 猫爪
    猫爪
    2022-01-05

    嗯,我们也遇到了同样的问题。

    2022-01-05
    有用
    回复
登录 后发表内容