实现
- 在manifest.json同级目录下创建一个ts文件(我这地方创建的是modifyManifest.ts文件)
const fs = require("fs");
const path = require("path");
const currentDir = path.dirname(__filename);
const manifestPath = path.join(currentDir, "manifest.json");
const VITE_APP_WX_APPID = process.env.VITE_APP_WX_APPID;
fs.readFile(manifestPath, (err, data) => {
if (err) {
console.error(err);
} else {
try {
if (!VITE_APP_WX_APPID) {
console.log("写入失败,没读到appid");
return;
}
const _data = JSON.parse(data.toString());
_data["mp-weixin"].appid = VITE_APP_WX_APPID;
_data["app-plus"].distribute.sdkConfigs.share.weixin.appid =
VITE_APP_WX_APPID;
const newData = JSON.stringify(_data, null, 2);
fs.writeFile(
manifestPath,
newData,
{
encoding: "utf-8",
},
(err) => {
if (err) {
console.log("写入失败", err);
} else {
console.log("写入成功");
}
}
);
} catch (parseError) {
console.error("解析 manifest.json 失败", parseError);
}
}
});
- 在项目的package.json中运行得脚本进行配置,以下是vite的项目,cli的脚本有些不同,仅供参考
"dev:mp-weixin:production": "cross-env NODE_ENV=production VITE_APP_WX_APPID=xxxxxxxx node src/modifyManifest.ts && uni -p mp-weixin --mode production",
"dev:mp-weixin:test": "cross-env NODE_ENV=test VITE_APP_WX_APPID=xxxxxxxx node src/modifyManifest.ts && uni -p mp-weixin --mode test",