1***@qq.com
1***@qq.com
  • 发布:2023-05-19 17:34
  • 更新:2023-09-11 15:16
  • 阅读:421

【报Bug】云函数导致编译到微信出现 TypeError: I18n is not a constructor

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10 专业版 版本 10.0.19045 内部版本 19045

HBuilderX版本号: 3.8.2

第三方开发者工具版本号: 3.8.2

基础库版本号: 2.32.0

项目创建方式: CLI

CLI版本号: 2.0.2-alpha-3080220230511001

示例代码:

依赖如下

 "@dcloudio/uni-app": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-app-plus": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-h5": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-i18n": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-360": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-alipay": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-baidu": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-jd": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-kuaishou": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-lark": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-qq": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-toutiao": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-vue": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-weixin": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-mp-xhs": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-quickapp-native": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-quickapp-webview": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-stacktracey": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-stat": "2.0.2-alpha-3080220230511001",  

 "@dcloudio/types": "*",  
    "@dcloudio/uni-automator": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-cli-i18n": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-cli-shared": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-helper-json": "*",  
    "@dcloudio/uni-migration": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/uni-template-compiler": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/vue-cli-plugin-hbuilderx": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/vue-cli-plugin-uni": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/vue-cli-plugin-uni-optimize": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/webpack-uni-mp-loader": "2.0.2-alpha-3080220230511001",  
    "@dcloudio/webpack-uni-pages-loader": "2.0.2-alpha-3080220230511001",

操作步骤:

cli从稳定版升级到了最新的alpha版本,运行后出现上述错误,尝试过降低版本,都能复现

预期结果:

正常运行

实际结果:

出现TypeError: I18n is not a constructor错误

bug描述:

cli项目存在uniCloud-tcb文件夹的情况下,运行到微信小程序后出现错误,删除文件夹后正常

2023-05-19 17:34 负责人:无 分享
已邀请:

最佳回复

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

问题已定位,后续会进行修复。可以先使用下面的临时方案进行处理

找到项目node_modules下的node_modules/@dcloudio/uni-i18n/dist。在uni-i18n.cjs.jsuni-i18n.es.js内找到getDefaultLocale方法的定义,改成下面的写法

function getDefaultLocale() {  
    // #ifndef MP  
    if (typeof uni !== 'undefined' && uni.getLocale) {  
        return uni.getLocale();  
    }  
    // #endif  
    // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale  
    if (typeof global !== 'undefined' && global.getLocale) {  
        return global.getLocale();  
    }  
    return LOCALE_EN;  
}
1***@qq.com

1***@qq.com (作者)

官方谁来看下哦,急急急

1***@qq.com

1***@qq.com (作者)

将uniCloud-tcb随便改个名字也可以正常运行,但是这样就意味着放弃使用了云函数相关功能

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

你用的cli版本是多少,特别看下@dcloudio/uni-i18n的版本。另外用的什么包管理工具,可以的话直接把package.json和对应的lock文件作为附件发出来

  • 1***@qq.com (作者)

    依赖发到附件了,用的yarn

    2023-05-20 18:32

  • 1***@qq.com (作者)

    你好,请问有进展吗?

    2023-05-22 09:16

1***@qq.com

1***@qq.com (作者)

有没有人

1***@qq.com

1***@qq.com (作者)

const config = {  
  presets: [  
    [  
      '@vue/app',  
      {  
        // modules: webpack.version[0] > 4 ? 'auto' : 'commonjs',  
        modules: 'umd',  
        useBuiltIns: process.env.UNI_PLATFORM === 'h5' ? 'usage' : 'entry'  
      }  
    ]  
  ],  
  plugins  
}  

目前将babel.config.js中的modules修改为 umd 解决了问题,官方谁看下有没有问题!!!!!我真是吐了

  • 1***@qq.com (作者)

    修改成commonjs可行

    2023-05-22 13:52

1***@qq.com

1***@qq.com (作者)

今天更新到了 2.0.2-alpha-3081220230802001,还是没有修复

要回复问题请先登录注册