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

14 回复

从 /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一直拉不下来

回复 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-alipaydist/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: 编译设置,如 es6postcss 等,根据项目需求进行调整。
  • libVersion: 支付宝小程序的库版本,确保与你的项目兼容。
  • condition: 条件编译设置,通常不需要修改。

2.3 保存文件

修改完成后,保存 mini.project.json 文件。

3. 重新编译项目

手动修改 mini.project.json 后,重新编译项目以确保更改生效:

npm run dev:mp-alipay

或者,如果你是在生产环境中:

npm run build:mp-alipay
回到顶部