每次都是这样

- 发布:2024-05-07 09:50
- 更新:2025-06-10 10:29
- 阅读:942
产品分类: 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,
"globalObjectMode": "enable"
}
}
实际结果:
{
"format": 2,
"compileOptions": {
"component2": true,
"enableNodeModuleBabelTransform": true
},
"unknownConfig": {
"appid": "XXXXXXXXX",
"projectname": "XXXXXX"
}
}
{
"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"
}
}
最佳回复

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 (作者)
另一个方案就是修改 /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 - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
感谢反馈,你提到支付宝小程序最近支持了 globalObjectMode 属性,现在会被忽略。你也提到了修改位置,感兴趣提一个 PR 吗,我可以帮助你 review,如果不感兴趣,后续我会尝试修复此问题。

9***@qq.com (作者)
不知道源码库地址在哪里,能发一下吗
-
在这里 https://github.com/dcloudio/uni-app/tree/next/packages/uni-mp-alipay ,你可以对照 src 进行比对,如果可以提 pr 的话,直接艾特我就行
2024-05-11 14:17
-
-
回复 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
-

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
};
9***@qq.com (作者)
参考这个问题已解决
2025-06-17 17:59