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

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

参考资料

### 设置和配置Electron开发环境 #### 配置Node.js环境 为了顺利搭建Electron开发环境,需先安装Node.js。访问Node.js官方网站并下载适合的操作系统版本进行安装[^3]。 #### 安装Visual Studio Code编辑器 选择合适的集成开发环境对于提高效率至关重要。推荐使用Visual Studio Code作为主要的代码编写工具。可以从其官方页面获取最新版并完成安装过程。 #### 创建项目文件夹结构 创建一个新的工作目录用于存放即将建立的应用程序源码及相关资源文件。通常情况下,在此根目录内会包含`package.json`以及其他必要的启动脚本如`main.js`等[^5]。 #### 初始化npm包管理器 打开终端窗口进入到之前新建的工作区路径下,通过执行命令 `npm init -y` 来快速初始化一个默认配置下的`package.json` 文件。这一步骤能够帮助定义项目的元数据以及依赖关系列表[^1]。 #### 添加Electron到项目中 利用Yarn或NPM来引入Electron框架至本地工程里。针对Windows平台建议采用下面这条指令: ```bash yarn add electron --dev --platform=win64 ``` 该操作将会把指定架构版本(此处指代64位windows)的Electron加入到开发者模式中的node_modules文件夹之中,并更新对应的锁文件以锁定所使用的具体版本号信息[^2]。 #### 修改Package.json入口点 确保在`package.json` 中正确设置了应用程序的主要JavaScript文件位置。一般而言就是将 `"main": "main.js"` 这样的键值对添加进去以便于后续加载时可以找到正确的起点。 #### 测试全局命令行工具可用性 如果打算频繁调用某些第三方库或者自定义构建任务的话,则可能还需要考虑将其注册成为系统的环境变量之一。例如当遇到无法识别cnpm的情况时,应该确认已经按照指示增加了相应的全局模块路径到用户的PATH属性里面去[^4]。 #### 安装并发处理插件Concurrently 为了让多个进程能够在同一时间运行而不互相干扰,可以通过安装concurrently这个辅助性的npm包实现这一目标。只需输入如下所示语句即可完成安装流程: ```bash npm install concurrently --save-dev ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜猫逐梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值