3***@qq.com
3***@qq.com
  • 发布:2023-03-23 00:39
  • 更新:2023-06-05 19:05
  • 阅读:857

【报Bug】添加uni-id-pages后JS编译成ES5问题,勾选或不勾选都有不同的问题

分类:uni-app

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

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.14.6

HBuilderX类型: 正式

HBuilderX版本号: 3.7.7

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

基础库版本号: 2.30.2

项目创建方式: HBuilderX

操作步骤:

1.创建一个新项目
2.添加uni-id-pages

预期结果:

一切正常

实际结果:

勾选JS编译成ES5 , unicloud的查询在微信开发者工具控制台会报错,二维码预览正常,HBX控制台中有返回的数据。
取消JS编译成ES5后,unicloud查询正常,二维码预览不正常,无法正常预览。

bug描述:

微信开发者工具勾选 将JS编译成ES5 ,unicloud的get查询会报错 ‘ReferenceError: _t3 is not defined’。取消JS编译成ES5则正常,但是取消后点预览会有这个提示

message:Error: 非法的文件,错误信息:invalid file: uni_modules/uni-id-pages/common/store.js, 1:1387, SyntaxError: Unexpected token ?!function(){"use strict";const e=require("../../../common/vendor.js"),n=require("../config.js"),i=e.Es.importObject("uni-id-co"),t=e.Es.database().collection("uni-id-users");let o=e.index.getStorageSync("uni-id-pages-userInfo")||{};const s={userInfo:o,hasLogin:0!=Object.keys(o).length},r={async updateUserInfo(n=!1){if(n)t.where("_id==$env.uid").update(n).then(i=>{i.result.updated?(e.index.showToast({title:"更新成功",icon:"none",duration:3e3}),this.setUserInfo(n)):e.index.showToast({title:"没有改变",icon:"none",duration:3e3})});else{const n=e.Es.importObject("uni-id-co",{customUI:!0});try{let e=await t.where("'_id' == $cloudEnv_uid").field("mobile,nickname,username,email,avatar_file").get();const i=await n.getRealNameInfo();this.setUserInfo({...e.result.data[0],realNameAuth:i})}catch(e){this.setUserInfo({},{cover:!0}),console.error(e.message,e.errCode)}}},async setUserInfo(n,{cover:i}={cover:!1}){let t=i?n:Object.assign(a.userInfo,n);return a.userInfo=Object.assign({},t),a.hasLogin=0!=Object.keys(a.userInfo).length,e.index.setStorage({key:"uni-id-pages-userInfo",data:a.userInfo}),n},async logout(){var n;if(e.Es.getCurrentUserInfo().tokenExpired>Date.now())try{await i.logout()}catch(e){console.error(e)}e.index.removeStorageSync("uni_id_token"),e.index.setStorageSync("uni_id_token_expired",0),e.index.redirectTo({url:"/"+((null==(n=e.pagesJson.uniIdRouter)?void 0:n.loginPage)??"uni_modules/uni-id-pages/pages/login/login-withoutpwd")}),e.index.$emit("uni-id-pages-logout"),this.setUserInfo({},{cover:!0})},loginBack(n={}){const{uniIdRedirectUrl:i=""}=n;let t=0,o=getCurrentPages();if(o.forEach((e,n)=>{"login"==o[o.length-n-1].route.split("/")[3]&&t++}),i)return e.index.reLaunch({url:i});if(t){const n=e.pagesJson.pages[0];return e.index.reLaunch({url:"/"+n.path})}e.index.navigateBack({delta:t})},loginSuccess(i={}){const{showToast:t=!0,toastText:o="登录成功",autoBack:s=!0,uniIdRedirectUrl:r="",passwordConfirmed:a}=i;if(t&&e.index.showToast({title:o,icon:"none",duration:3e3}),this.updateUserInfo(),e.index.$emit("uni-id-pages-login-success"),n.config.setPasswordAfterLogin&&!a)return e.index.redirectTo({url:r?/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?uniIdRedirectUrl=${r}&loginType=${i.loginType}:"/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?loginType="+i.loginType,fail:e=>{console.log(e)}});s&&this.loginBack({uniIdRedirectUrl:r})}},a=e.reactive(s);exports.mutations=r}(); [20230323 00:22:25][wx92f12e36061bf318]
appid: wx92f12e36061bf318
openid: o6zAJsz7xX24lcJyKAAJgFo2VlmA
ideVersion: 1.06.2303222
osType: darwin-x64
time: 2023-03-23 00:22:31

勾选JS编译ES5则能正常生成二维码预览。

2023-03-23 00:39 负责人:DCloud_UNI_Anne 分享
已邀请:
DCloud_UNI_Anne

DCloud_UNI_Anne

未复现此问题,请升级uni-id-pages至最新版本再试试,如果还不行,提供你的最简化复现示例(上传附件)【咨询问题/bug处理优先级规则】:https://ask.dcloud.net.cn/article/38139

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

    上传了,用的最新的uni-id-pages

    2023-03-27 21:57

3***@qq.com

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

把uni-id-pages页面注册一下就出现问题了,勾上JS转ES5可以生成预览二维码,但是unicloud的请求会报错。如果不用uni-id-pages的那些页面就正常的。

  • DCloud_UNI_Anne

    把uni-id-pages页面注册一下就出现问题了?是指page.json中注册页面?

    2023-03-28 18:31

  • DCloud_UNI_Anne

    测试未发现此问题,可提供下复现操作步骤

    2023-03-28 18:31

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

    回复 DCloud_UNI_Anne: 嗯对,在page.json中写了uni-id-pages的页面就出现上述问题,我上传附件了啊

    2023-03-28 18:53

  • DCloud_UNI_Anne

    回复 3***@qq.com: 勾选JS编译成ES5,开发者工具和二维码预览均正常。取消JS编译成ES5后,二维码预览不正常,此问题已复现

    2023-03-28 20:02

  • DCloud_UNI_Anne

    回复 3***@qq.com: 勾选JS编译成ES5 , unicloud的查询在微信开发者工具控制台会报错,提供下控制台报错截图

    2023-03-28 20:02

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

    回复 DCloud_UNI_Anne: 截图在下面

    2023-03-28 20:59

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

    回复 DCloud_UNI_Anne: 找到问题了,二维码预览不正常报错是用了 '??' 这个运算符,在uni-id-pages/common/store 81行左右。新建一个js文件用 ?? 这个运算符,在别的页面 import 就报错了,换成'||'就是正常的。但是我直接在页面用 '??' 不会报错

    2023-03-29 03:32

3***@qq.com

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

附件

3***@qq.com

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

截图在这里,微信开发者工具报错,unicloud控制台正常返回结果

大虾虾

大虾虾

HBuilder X 3.7.9

小程序开发者工具勾选js编译成es5 就会报错

报错代码:ReferenceError: _t3 is not defined

app.vue 文件

<script>
export default {
onLaunch: function() {
console.log('App Launch')

        const db = uniCloud.database()  
        db.collection('uni-id-users')  
            .where('_id==$cloudEnv_uid')  
            .field('nickname')  
            .get({ getOne: true })  
            .then((res) => {  
                console.log(res);  
            })        

    },  
    onShow: function() {  
        console.log('App Show')  
    },  
    onHide: function() {  
        console.log('App Hide')  
    }  
}  

</script>

  • 大虾虾

    微信开发者工具换成稳定版,就没问题了。

    2023-03-29 16:59

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

    回复 大虾虾: 稳定版 勾选JS编译成ES5 查询不报错了吗??

    2023-03-29 23:58

  • 大虾虾

    回复 3***@qq.com: 是的

    2023-03-31 00:01

cgf876

cgf876

我更新成最新的仍然报错 ReferenceError: _t3 is not defined 去掉JS转es5就正常
hbuilx 版本:3.7.11.20230427
微信开发者工具 :1.06.2303220

j***@icloud.com

j***@icloud.com

我也有同样的问题,缺省设置下(编译成JS5),模拟器运行会出现_t3 is not defined.手机端通过vconsle也是类似的错误,简单看了下,错误来自“unicloud-db.js"中。

  • j***@icloud.com

    补充下,微信最新的稳定版开发工具有这个问题,回退到上一版,此问题消失。

    2023-06-05 19:12

要回复问题请先登录注册