文章摘要 FakeGPT
加载中...|
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()分别用于打印正常信息和错误信息。
