评论

小程序如何动态设置环境变量

开发再也不用担心手动改数据了

实现思路:

  • 通过脚本执行命令实现
  • nodejs读写对应文件数据进行修改
  • 执行不同命令,运行不同环境,修改不同的数据值

实现步骤:

  1. 安装 package.json
npm init

配置对应的环境命令 NODE_ENV=‘sit’ 即为当前环境是sit

  "scripts": {
    "dev": "set NODE_ENV='sit' && node script.env.js",
    "uat": "set NODE_ENV='uat' && node script.env.js",
    "prod": "set NODE_ENV='prod' && node script.env.js",
    "mac:dev": "export NODE_ENV='sit' && node script.env.js",
    "mac:uat": "export NODE_ENV='uat' && node script.env.js",
    "mac:prod": "export NODE_ENV='prod' && node script.env.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  }
  1. utils文件目录新建一个config.js用于配置或写入环境变量(可以创建一个空文件,具体写入可在第3步中配置)
module.exports.title = '环境-sit';
module.exports.baseURL = 'sit环境url地址';
  1. 新建一个 script.env.js 脚本执行文件,即node命令配置的 node script.env.js
const fs = require('fs'); //引入nodejs fs文件模块
// 写文件
const writeFile = (path, data) => {
  // process.cwd()方法是流程模块的内置应用程序编程接口,用于获取node.js流程的当前工作目录。
  fs.writeFile(`${process.cwd()}${path}`, data, (err) => {
    if (err) throw err;
  });
}
//配置信息
const CONFIG = {
  //测试环境
  'sit': {
    title: '环境-sit',
    baseURL: 'sit环境url地址',
  },
  'uat': {
    title: '环境-uat',
    baseURL: 'uat环境url地址',
  },
  // 生产环境
  'prod': {
    title: '环境-prod',
    baseURL: 'prod环境url地址'
  }
}

const env = process.env.NODE_ENV.replace(/\'/g, '').replace(' ', ''); //当前执行环境
const ITEM = CONFIG[env]; //当前环境的配置信息

// 修改project.config.json里面的appid
// fs.readFile(`${process.cwd()}/project.config.json`, (err, data) => {
//   if (err) throw err;
//   let _data = JSON.parse(data.toString());
//   _data.appid = ITEM.appid;
//   writeFile(`/project.config.json`, JSON.stringify(_data, null, 2));
// });

let configString = '';
Object.keys(ITEM).forEach(key => {
  configString += `module.exports.${key} = '${ITEM[key]}';\n`;
})
// 自动写入需要配置的config.js文件
writeFile(`/miniprogram/utils/config.js`, configString);

  1. 每次想要切换环境时,只需要输入对应命令就可以了
npm run dev //sit环境
npm run uat //uat环境
npm run prod //正式环境
最后一次编辑于  2022-09-20  
点赞 2
收藏
评论

1 个评论

登录 后发表内容