9***@qq.com
9***@qq.com
  • 发布:2024-05-07 09:50
  • 更新:2024-05-11 09:43
  • 阅读:351

【报Bug】支付宝工程编译配置已经改变,但每次编译出来的mini.project.json都不对,需要自己再手动修改

分类:uni-app

产品分类: uniapp/小程序/阿里

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 4.14

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

基础库版本号: 2.0

项目创建方式: HBuilderX

操作步骤:

每次都是这样

预期结果:
{  
  "format": 2,  
  "compileOptions": {  
    "component2": true,  
    "enableNodeModuleBabelTransform": true,  
    "globalObjectMode": "enable"  
  }  
}

实际结果:
{  
  "format": 2,  
  "compileOptions": {  
    "component2": true,  
    "enableNodeModuleBabelTransform": true  
  },  
  "unknownConfig": {  
    "appid": "XXXXXXXXX",  
    "projectname": "XXXXXX"  
  }  
}

bug描述:

支付宝工程编译配置已经改变,但每次编译出来的mini.project.json都不对,需要自己再手动修改,HBuilderX编译支付宝小程序后mini.project.json的内容大致如下

{  
  "format": 2,  
  "compileOptions": {  
    "component2": true,  
    "enableNodeModuleBabelTransform": true  
  },  
  "unknownConfig": {  
    "appid": "XXXXXXXXX",  
    "projectname": "XXXXXX"  
  }  
}

我自己还需要手动修改如下

{  
  "format": 2,  
  "compileOptions": {  
    "component2": true,  
    "enableNodeModuleBabelTransform": true,  
    "globalObjectMode": "enable"  
  }  
}
2024-05-07 09:50 负责人:无 分享
已邀请:
9***@qq.com

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

从 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-alipay/dist/uni.compiler.js 和 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vite/dist/plugins/manifestJson.js 源码看解决方案是 将能编译的支付宝小程序配置文件 mini.project.json 复制到 HBuilderX 的项目内。

9***@qq.com

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

另一个方案就是修改 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-alipay/dist/uni.compiler.js 和 /Applications/HBuilderX.app/Contents/HBuilderX/update/backup/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-alipay/dist/uni.compiler.js

将20行改为如下内容,即添加 globalObjectMode 变量和修改 source 对象属性

// 编译后写到 mini.project.json 的配置信息,这里需要修改,支付宝工程编译配置已经改变了  
var globalObjectMode = "enable";  
var source = {  
    appid: appid,  
    format: 2,  
    compileOptions: {  
        component2: component2,  
        enableNodeModuleBabelTransform: enableNodeModuleBabelTransform,  
        globalObjectMode: globalObjectMode  
    },  
    enableAppxNg: enableAppxNg  
};

同时还需修改工程的 manifest.json 的 mp-alipay ,添加对应的属性,例如

    "mp-alipay" : {  
        "appid" : "xxxxxxxxxxxx",  
        "format" : 2,  
        "compileOptions" : {  
            "component2" : true,  
            "enableNodeModuleBabelTransform" : true,  
            "globalObjectMode" : "enable"  
        },  
        "enableDistFileMinify" : true,  
        "uniStatistics" : {  
            "enable" : true  
        }  
    },
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

感谢反馈,你提到支付宝小程序最近支持了 globalObjectMode 属性,现在会被忽略。你也提到了修改位置,感兴趣提一个 PR 吗,我可以帮助你 review,如果不感兴趣,后续我会尝试修复此问题。

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

    不知道源码库地址在哪里,能发一下吗

    2024-05-11 09:42

9***@qq.com

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

不知道源码库地址在哪里,能发一下吗

  • DCloud_UNI_OttoJi

    在这里 https://github.com/dcloudio/uni-app/tree/next/packages/uni-mp-alipay ,你可以对照 src 进行比对,如果可以提 pr 的话,直接艾特我就行

    2024-05-11 14:17

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

    回复 DCloud_UNI_OttoJi: 有没有码云,github一直拉不下来

    2024-05-11 16:16

  • DCloud_UNI_OttoJi

    回复 9***@qq.com: 有的 gitee 上 https://gitee.com/dcloud/uni-app/tree/next/packages/uni-mp-alipay

    2024-05-11 17:10

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

    回复 DCloud_UNI_OttoJi: 提交了 https://gitee.com/dcloud/uni-app/pulls/124

    2024-05-14 20:14

  • DCloud_UNI_OttoJi

    回复 9***@qq.com: 强啊,我看看

    2024-05-15 10:43

9***@qq.com

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

另外可以修改修改 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.compiler.js 和 /Applications/HBuilderX.app/Contents/HBuilderX/update/backup/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.compiler.js 的74行 添加 condition 支持条件编译

var setting = {  
    urlCheck: false,  
    es6: true,  
    postcss: false,  
    minified: false,  
    newFeature: true,  
    bigPackageSizeSupport: true,  
    condition: true  
};

要回复问题请先登录注册