【electron】判断当前进程是否是开发环境的五种方案(获取一些资源的路径)
文章目录
- 导读
- 需求
- 开发环境
- 判断是否是开发环境
- 方案一: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】判断当前进程是否是开发环境的五种方案(获取一些资源的路径)相关推荐
- vue在生产环境、测试环境和开发环境,三种环境下配置不同的api地址
vue在生产环境.测试环境和开发环境,三种环境下配置不同的api地址 我们大多数在开发的时候,都会有三种环境,一个是开发环境,一个是测试环境,一个是生产环境,我们打包的时候需要根据不同的环境去加载不同 ...
- 搭建PHP开发环境(五)-虚拟主机
搭建PHP开发环境(五)-虚拟主机 Apache服务器提供虚拟主机的功能,通过虚拟主机,可以在一台服务器上部署多个网站.通常服务器的IP地址是固定的,不同的虚拟主机解析到同一地址.用户使用不同的域 ...
- Docker02 基本命令、开发环境搭建、docker安装nginx、Dockerfile、路径挂载
1 基本命令 1.1 docker相关 centos6.5 安装docker环境 >sudo yum install -y http://mirrors.yun-idc.com/epel/6/i ...
- php开源堡垒机,开源堡垒机在开发环境中的使用方案-麒麟开源堡垒机
一.部署说明: 开发环境主要使用开发人员的PC或笔记本终端进行开发,开发完成后,将代码交付相应的负责人,负责人编译测试后,将代码上传到CVS备份,将程序上传到生产环境使用.这种管理模式主要存在如下问题 ...
- 【C#+Access+WindowsAPI】实现仿360的安全卫士 一:功能展示与系统开发环境简介(附源码和资源)
需要源码和资源请点赞关注收藏后评论区留言私信~~~ 其他部分文章链接如下 [C#+Access+WindowsAPI]实现仿360的安全卫士 二:主窗体设计讲解(附源码和资源) [C#+Access+ ...
- RabbitMQ入门(简介、搭建环境、五种工作模式)介绍
1. RabbitMQ介绍 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消 ...
- python自带gui_Python GUI开发工具中五种类型的相关介绍
Python这一计算机语言不仅具有十分简捷的操作功能,它还具有十分快速的相关开发功能,此文主要向你介绍的是关于Python GUI开发工具在实际相关应用操作过程中的具体操作,以及这几种开发工具相关内容 ...
- AI技术在游戏开发中的五种有效尝试
AI,即人工智能(Artificial Intelligence) ,当下处于风口浪尖的AI莫过于谷歌推出的AlphaGO(阿发狗).其实作为玩家在游戏中最为常见的对手,几乎每一个游戏里面都有AI的存 ...
- 阿里云服务器配置开发环境第五章:Centos7.3切换为iptables防火墙
centos7.3默认使用的防火墙应该是firewall,而不是iptables.而我们xxmj服务器使用的是iptables防火墙.所以,在配置防火墙之前,我们需要先关闭firewall,安装ipt ...
最新文章
- 网格的铺设问题——骨牌
- java多线程总结图_Java多线程总结之Queue
- [coursera machine learning] Week 1
- 13.transform确保目标空间足够大
- 地方商城门户网页模板-商城模板
- (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
- 剑指offer面试题03. 数组中重复的数字(Array)
- 软件质量保障之代码走查
- OI造数据以及Lemon评测教程
- JDK和JRE的下载与安装
- 利用igraph包绘制网络图
- 发声 | 再访《Scratch少儿趣味编程》系列图书作者阿部和广访谈问题有奖征集...
- ERP编制物料清单 金蝶
- ajax如何使用,页面如何调试
- jdbc mysql emoji 读取_mysql+jdbc的emoji异常问题
- 「重磅」2020下半年中国移动互联网大报告
- go遍历目录对lua进行xxtea加密工具
- linux prompt模式,Linux修改prompt提示的方法 | Soo Smart!
- 【二】Jmeter代理服务器录制请求
- 【单片机基础】stc89c52单片机实现流水灯的三种编程方式
热门文章
- Git权限不够报error: could not lock config file C:...
- FileProvider使用
- 练习3: 基本数据类型 (第3周)
- 解决XP无法识别移动硬盘
- java 递归与迭代_Java ----- 递归与迭代
- 使用vtk提取模型模型边线2021-01-24
- kubernates 实践
- 9亿做营销0.4亿做研发的妙可蓝多,靠什么卫冕“奶酪一哥“
- 微信小程序解析渲染Web App中的富文本内容
- 【Linux应用】串口UART编程