electron作为一个客户端应用,往往需要处理配置文件,
开发环境和生产环境的目录有些不同,我们需要判断当前环境,来读取不同目录的配置。
| 版本号 | 描述 | |
|---|---|---|
| 文章日期 | 2022-11-20 | |
| 操作系统 | Win11-22H2 | 内部版本号22621.674 |
| nvm version | 1.1.9 | |
| node -v | v12.22.12 | npm -v (6.14.16) |
| electron | @16.2.8 | npm list |
| electron-builder | 22.4.1 |
开发环境中:
location.protocol == 'http:'。
__static开发环境全局变量
__static包含node_modules目录。
process.resourcesPath开发环境全局变量
process.resourcesPath包含node_modules目录。
process.env.WEBPACK_DEV_SERVER开发环境全局变量
process.env.WEBPACK_DEV_SERVER值为'true'。
const { app } = require(‘electron’)
这个app只能在Main进程使用,Render进程要使用的话,需要设置通过一些技术手段设置进来(如preload.js),这里不详细展开了。
参考资料:https://www.electronjs.org/zh/docs/latest/api/app
从上面各种方案中,我们可以看出,
方案三最适合获取配置目录。
代码如下:
function get_data_path() {
let idx = process.resourcesPath.indexOf('\\node_modules\\');
if (idx == -1) {
// 生成环境
return process.resourcesPath + '\\..\\_data\\';
} else {
// 开发环境
return process.resourcesPath.substring(0, idx) + '\\_data\\';
}
}
get_data_path();
效果如下: