微信小程序引入全局环境变量

发布于:2024-08-21 ⋅ 阅读:(32) ⋅ 点赞:(0)

有时候一套代码要在多个小程序appId下使用,其中又有一些数据(文字)需要做区分.可以使用下面的方法

把要配置的数据以export default 形式导出

在app.js中,引入project.config.0.js文件,将导出的数据放在globalData中

 在页面目录中,即可利用getApp()方法使用全局变量

也可以放数据放在data中,作为响应式数据

生成配置文件的方法

将需要配置的数据以json格式编写

读取json文件,并用nodejs覆盖写入文件nodeswitch.js

注意下方用了2次fs.writeFile

const fs = require("fs");
const WSJCFG = require("./nodeswitch.json");
var companyName = process.argv.slice(2)[0] || 'acai'

function writeConfig(inputFile, outputFile, fn) {
  const writeStream = fs.createWriteStream(outputFile);
  var str = fn(WSJCFG)
  writeStream.write(str)
}
writeConfig('project.config.0.js', './project.config.0.js', (cfg) => {
  var s = `export default {
  "idname": "${cfg[companyName].idname}",
  "apiDomain": "${cfg[companyName].apiDomain}",
  "gh_id": "${cfg[companyName].gh_id}",
  "navigationBarTitleText": "${cfg[companyName].navigationBarTitleText}"
}`
  return s
})

function mini(cfg) {
  var obj = require("./project.config.json");
  obj.appid = cfg[companyName].appid;
  fs.writeFile('project.config.json', JSON.stringify(obj, null, 2), 'utf8', function (err) {
    if (err) {
      console.error(err);
      return;
    }
    console.log('File has been successfully updated!');
  });
}
mini(WSJCFG)

userUI(WSJCFG)

function userUI(cfg) {
  var obj = require("./pages/index/index.json");
  obj.navigationBarTitleText = cfg[companyName].navigationBarTitleText;
  fs.writeFile('./pages/index/index.json', JSON.stringify(obj, null, 2), 'utf8', function (err) {
    if (err) {
      console.error(err);
      return;
    }
    console.log('File更新成功updated!');
  });
}


网站公告

今日签到

点亮在社区的每一天
去签到