uni-app 支付宝工程编译配置变更后 mini.project.json 文件不正确 需手动修改
uni-app 支付宝工程编译配置变更后 mini.project.json 文件不正确 需手动修改
项目信息 | 值 |
---|---|
产品分类 | 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"
}
}
更多关于uni-app 支付宝工程编译配置变更后 mini.project.json 文件不正确 需手动修改的实战教程也可以访问 https://www.itying.com/category-93-b0.html
从 /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 的项目内。
更多关于uni-app 支付宝工程编译配置变更后 mini.project.json 文件不正确 需手动修改的实战教程也可以访问 https://www.itying.com/category-93-b0.html
另一个方案就是修改 /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
}
},
感谢反馈,你提到支付宝小程序最近支持了 globalObjectMode 属性,现在会被忽略。你也提到了修改位置,感兴趣提一个 PR 吗,我可以帮助你 review,如果不感兴趣,后续我会尝试修复此问题。
不知道源码库地址在哪里,能发一下吗
不知道源码库地址在哪里,能发一下吗
在这里 https://github.com/dcloudio/uni-app/tree/next/packages/uni-mp-alipay ,你可以对照 src 进行比对,如果可以提 pr 的话,直接艾特我就行
回复 DCloud_UNI_OttoJi: 有没有码云,github一直拉不下来
回复 9***@qq.com: 有的 gitee 上 https://gitee.com/dcloud/uni-app/tree/next/packages/uni-mp-alipay
回复 DCloud_UNI_OttoJi: 提交了 https://gitee.com/dcloud/uni-app/pulls/124
回复 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
};
HBuildX 4.45这个问题还存在,项目根目录新建mini.project.json,内容:
{
“compileOptions”:{
“transpile”: {
“script”: {
“ignore”: [
“/node_modules/”
]
}
}
}
}
编译后,变成了:
{
“format”: 2,
“unknownConfig”: {
“compileOptions”: {
“transpile”: {
“script”: {
“ignore”: [
“/node_modules/”
]
}
}
}
}
}
现在又好了,可能刚才是缓存问题
在 uni-app
项目中,当你对支付宝小程序的编译配置进行变更后,可能会出现 mini.project.json
文件不正确的情况。这通常是因为 uni-app
的构建工具在生成配置文件时,未能正确同步你做的修改。此时,你需要手动修改 mini.project.json
文件以确保配置正确。
1. 定位 mini.project.json
文件
mini.project.json
文件通常位于支付宝小程序项目的根目录下。如果你是使用 uni-app
开发,它会在 dist/dev/mp-alipay
或 dist/build/mp-alipay
目录中生成。
2. 手动修改 mini.project.json
你可以根据以下步骤手动修改 mini.project.json
文件:
2.1 打开 mini.project.json
使用文本编辑器(如 VSCode)打开 mini.project.json
文件。
2.2 检查并修改配置
检查文件中的配置项,确保它们符合你的需求。以下是一些常见的配置项:
{
"description": "项目描述",
"appid": "你的小程序AppID",
"setting": {
"urlCheck": true,
"es6": true,
"postcss": true,
"minified": true
},
"compileType": "miniprogram",
"scripts": {
"beforeCompile": "",
"beforePreview": "",
"beforeUpload": ""
},
"libVersion": "2.0.0",
"condition": {
"search": {
"current": -1,
"list": []
},
"conversation": {
"current": -1,
"list": []
},
"plugin": {
"current": -1,
"list": []
}
}
}
description
: 项目描述,可以自定义。appid
: 支付宝小程序的 AppID,确保填写正确。setting
: 编译设置,如es6
、postcss
等,根据项目需求进行调整。libVersion
: 支付宝小程序的库版本,确保与你的项目兼容。condition
: 条件编译设置,通常不需要修改。
2.3 保存文件
修改完成后,保存 mini.project.json
文件。
3. 重新编译项目
手动修改 mini.project.json
后,重新编译项目以确保更改生效:
npm run dev:mp-alipay
或者,如果你是在生产环境中:
npm run build:mp-alipay