文章摘要
加载中...|
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结 投诉

INFO

我司小程序项目原有配置方式是根据不同医院手动去配置uniapp相关配置项,但这架不住医院一多,开发环境手动切换配置就变得无比麻烦,基于此我整理了通过打包命令行加载配置的方法...

原理

实质上是通过nodeJS的文件读写从而实现配置修改的操作

实现步骤

在uni-app中,可以使用命令行来动态加载配置文件。
首先,需要创建一个名为config.js的配置文件,并将其放置于项目根目录下。该配置文件应包含所有需要动态加载的参数或变量。 然后,通过编写脚本文件(如loadConfig.js)来实现从命令行获取输入值,并将这些值传递到配置文件中。
示例代码如下:

javascript
// loadConfig.js
const fs = require('fs'); // 引入Node.js内置模块fs
 
function getInputValue(key) {
  const input = process.argv[2]; // 获取第二个命令行参数作为输入值
  return JSON.parse(input)[key] || ''; // 返回对应key的值,若不存在则默认为空字符串
}
 
function updateConfigFile() {
  try {
    const configData = fs.readFileSync('./config.json', 'utf8'); // 同步读取配置文件
    const newConfigData = Object.assign({}, JSON.parse(configData), { key1: getInputValue('key1'), key2: getInputValue('key2') }); // 更新配置文件中的指定参数
    fs.writeFileSync('./config.json', JSON.stringify(newConfigData)); // 同步写入修改后的配置文件
    console.log('成功更新配置文件!');
  } catch (error) {
    console.error(`更新配置文件时发生错误:${error}`);
  }
}
 
updateConfigFile();

最后,运行上述脚本文件,并提供相关的命令行参数,即可完成动态加载配置文件的操作。示例命令如下:

javascript
node loadConfig.js {"key1": "value1", "key2": "value2"}

注意事项:

  • process.argv是Node.js全局对象,表示当前进程的命令行参数列表;
  • ./config.json是配置文件的路径,根据实际情况调整;
  • getInputValue()函数用于从命令行参数中获取特定key的值,此处示例了两个参数'key1'和'key2';
  • Object.assign()用于合并多个对象,将新的配置参数与原始配置参数合并;
  • JSON.stringify()用于将JavaScript对象转换为JSON格式的字符串;
  • console.log()和console.error()分别用于打印正常信息和错误信息。