文章目录

  • 导读
    • 需求
    • 开发环境
  • 判断是否是开发环境
    • 方案一:location.protocol
    • 方案二:全局变量`__static`
    • 方案三:全局变量`process.resourcesPath`
    • 方案四:全局变量`process.env.WEBPACK_DEV_SERVER`
    • 方案五:app.isPackaged
  • 获取配置目录
  • 参考资料

导读

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

需求

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

开发环境中: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();

效果如下:

参考资料

  • 代码地址: https://gitee.com/zkyt/electron-vue-element-admin
  • 【electron】 打包应用修改图标和进程名字 https://blog.csdn.net/kinghzking/article/details/127952519

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

  1. vue在生产环境、测试环境和开发环境,三种环境下配置不同的api地址

    vue在生产环境.测试环境和开发环境,三种环境下配置不同的api地址 我们大多数在开发的时候,都会有三种环境,一个是开发环境,一个是测试环境,一个是生产环境,我们打包的时候需要根据不同的环境去加载不同 ...

  2. 搭建PHP开发环境(五)-虚拟主机

    搭建PHP开发环境(五)-虚拟主机 ​ Apache服务器提供虚拟主机的功能,通过虚拟主机,可以在一台服务器上部署多个网站.通常服务器的IP地址是固定的,不同的虚拟主机解析到同一地址.用户使用不同的域 ...

  3. Docker02 基本命令、开发环境搭建、docker安装nginx、Dockerfile、路径挂载

    1 基本命令 1.1 docker相关 centos6.5 安装docker环境 >sudo yum install -y http://mirrors.yun-idc.com/epel/6/i ...

  4. php开源堡垒机,开源堡垒机在开发环境中的使用方案-麒麟开源堡垒机

    一.部署说明: 开发环境主要使用开发人员的PC或笔记本终端进行开发,开发完成后,将代码交付相应的负责人,负责人编译测试后,将代码上传到CVS备份,将程序上传到生产环境使用.这种管理模式主要存在如下问题 ...

  5. 【C#+Access+WindowsAPI】实现仿360的安全卫士 一:功能展示与系统开发环境简介(附源码和资源)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 其他部分文章链接如下 [C#+Access+WindowsAPI]实现仿360的安全卫士 二:主窗体设计讲解(附源码和资源) [C#+Access+ ...

  6. RabbitMQ入门(简介、搭建环境、五种工作模式)介绍

    1. RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消 ...

  7. python自带gui_Python GUI开发工具中五种类型的相关介绍

    Python这一计算机语言不仅具有十分简捷的操作功能,它还具有十分快速的相关开发功能,此文主要向你介绍的是关于Python GUI开发工具在实际相关应用操作过程中的具体操作,以及这几种开发工具相关内容 ...

  8. AI技术在游戏开发中的五种有效尝试

    AI,即人工智能(Artificial Intelligence) ,当下处于风口浪尖的AI莫过于谷歌推出的AlphaGO(阿发狗).其实作为玩家在游戏中最为常见的对手,几乎每一个游戏里面都有AI的存 ...

  9. 阿里云服务器配置开发环境第五章:Centos7.3切换为iptables防火墙

    centos7.3默认使用的防火墙应该是firewall,而不是iptables.而我们xxmj服务器使用的是iptables防火墙.所以,在配置防火墙之前,我们需要先关闭firewall,安装ipt ...

最新文章

  1. 网格的铺设问题——骨牌
  2. java多线程总结图_Java多线程总结之Queue
  3. [coursera machine learning] Week 1
  4. 13.transform确保目标空间足够大
  5. 地方商城门户网页模板-商城模板
  6. (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  7. 剑指offer面试题03. 数组中重复的数字(Array)
  8. 软件质量保障之代码走查
  9. OI造数据以及Lemon评测教程
  10. JDK和JRE的下载与安装
  11. 利用igraph包绘制网络图
  12. 发声 | 再访《Scratch少儿趣味编程》系列图书作者阿部和广访谈问题有奖征集...
  13. ERP编制物料清单 金蝶
  14. ajax如何使用,页面如何调试
  15. jdbc mysql emoji 读取_mysql+jdbc的emoji异常问题
  16. 「重磅」2020下半年中国移动互联网大报告
  17. go遍历目录对lua进行xxtea加密工具
  18. linux prompt模式,Linux修改prompt提示的方法 | Soo Smart!
  19. 【二】Jmeter代理服务器录制请求
  20. 【单片机基础】stc89c52单片机实现流水灯的三种编程方式

热门文章

  1. Git权限不够报error: could not lock config file C:...
  2. FileProvider使用
  3. 练习3: 基本数据类型 (第3周)
  4. 解决XP无法识别移动硬盘
  5. java 递归与迭代_Java ----- 递归与迭代
  6. 使用vtk提取模型模型边线2021-01-24
  7. kubernates 实践
  8. 9亿做营销0.4亿做研发的妙可蓝多,靠什么卫冕“奶酪一哥“
  9. 微信小程序解析渲染Web App中的富文本内容
  10. 【Linux应用】串口UART编程