有时候一套代码要在多个小程序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!');
});
}