新凌尼
新凌尼
  • 发布:2023-07-15 12:48
  • 更新:2023-08-01 22:02
  • 阅读:239

【报Bug】nvue main.js install的代码未#ifdef判断

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.8.7

手机系统: Android

手机系统版本号: Android 14

手机厂商: 华为

手机机型: p30

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
import util from '@/common/utils.js'  

var getGlobalObject = function(){  
    if (typeof globalThis === "object") return globalThis;  
    if (typeof self === "object") return self;  
    if (typeof window === "object") return window;  
    if (typeof global === "object") return global;  
};  

const install = Vue => {  
    let global = Vue.prototype ? Vue.prototype : Vue.config.globalProperties;  

    if (global) {  
        global.getDeviceUUID = util.getDeviceUUID;  
        global.countTotal = util.countTotal;  
        global.tolink = util.tolink;  
        global.toApp = util.toApp;  
        global.prePage = util.prePage;  
        global.getLocationAddress = util.getLocationAddress  
        global.getLocationMatrix = util.getLocationMatrix  
        global.history = util.history  
        global.getImageCache = util.getImageCache  
        global.goodPrice = util.goodPrice  
        global.catchAwait = util.catchAwait  
        global.text2biaoqing = util.text2biaoqing  
        global.getHeight = util.getHeight  
        global.getTouchPoint = util.getTouchPoint  
    }  
    uni.global = global;  
    let GlobalThis = getGlobalObject()  
        GlobalThis = {...GlobalThis,...util}  
}  

export default {  
    install  
}  

@/common/utils.js 内部 ifdef 无效

操作步骤:
// #ifndef APP-NVUE  
                console.log('vue')  
                // #endif  

                // #ifdef APP-NVUE  
                console.log('nvue ')  
                // #endif

预期结果:

nvue 打印 nvue vue打印vue

实际结果:

nvue 打印 vue vue打印vue

bug描述:

// #ifndef APP-NVUE  
                console.log('vue')  
                // #endif  

                // #ifdef APP-NVUE  
                console.log('nvue ')  
                // #endif

在app端 nvue页面 这段代码 打印的nvue 在install的js里面打印的vue

2023-07-15 12:48 负责人:DCloud_UNI_GSQ 分享
已邀请:
新凌尼

新凌尼 (作者)

在nvue 页面通过 uni.global. 调用的代码无ifdef 渲染判断

新凌尼

新凌尼 (作者)

12:50:15.866 nvue  at pages_chat/chat_list.nvue:389  
12:50:15.866 vue at common/utils.js:24

同样的打印代码,返回的结果不一样

喜欢技术的前端

喜欢技术的前端 - QQ---445849201

试了一下,没有复现你说的问题,我传了简单的示例,你再检查下

  • 新凌尼 (作者)

    用你的包 复现了问题 传下面了

    2023-07-15 16:49

  • 新凌尼 (作者)

    下面的回答我用你的包复现了问题依然存在,你那边测试下看!

    2023-07-17 18:15

新凌尼

新凌尼 (作者)

有问题的

新凌尼

新凌尼 (作者)

喜欢技术的前端

喜欢技术的前端 - QQ---445849201

你可以先用这种写法

// #ifdef APP-NVUE  
    console.log('module  这是Nvue')  
    uni.global.hello('Nvue')  
// #endif  

// #ifndef APP-NVUE   
    console.log('module  vue')  
    uni.global.hello('vue')  
// #endif  

export default {  
    hello(param){  
        console.log(param)  
        if(param == 'vue'){  

        }else{  

        }  
    }  
}
  • 新凌尼 (作者)

    好吧 ,这个BUG修复前也只有这样使用了~

    2023-07-18 13:03

新凌尼

新凌尼 (作者)

这个BUG没人来处理下嘛?

要回复问题请先登录注册