【electron】判断当前进程是否是开发环境的五种方案(获取一些资源的路径)

导读

以下内容在https://gitee.com/zkyt/electron-vue-element-admin上做的。

需求

electron作为一个客户端应用,往往需要处理配置文件,开发环境生产环境的目录有些不同,我们需要判断当前环境,来读取不同目录的配置。
在这里插入图片描述

开发环境

版本号描述
文章日期2022-11-20
操作系统Win11-22H2内部版本号22621.674
nvm version1.1.9
node -vv12.22.12npm -v (6.14.16)
electron@16.2.8npm list
electron-builder22.4.1

判断是否是开发环境

方案一:location.protocol

开发环境中:location.protocol == 'http:'
在这里插入图片描述

方案二:全局变量__static

开发环境全局变量__static包含node_modules目录。
在这里插入图片描述

方案三:全局变量process.resourcesPath

开发环境全局变量process.resourcesPath包含node_modules目录。
在这里插入图片描述

方案四:全局变量process.env.WEBPACK_DEV_SERVER

开发环境全局变量process.env.WEBPACK_DEV_SERVER值为'true'
在这里插入图片描述

方案五:app.isPackaged

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();

效果如下:
在这里插入图片描述

参考资料

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值