uniapp小程序动态配置appid(我目前得项目是基于vue3+ts+vite的)

145 阅读1分钟

实现

  1. 在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);
    }
  }
});
  1. 在项目的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",