逆水寒PC手游客户端点击后无任何反应和报错的修复方式
调试方式
因为在win系统中点击后无任何报错出现,所以说我们选择使用cmd运行程序,这样可以看到具体的异常信息
D:\逆水寒手游启动器>LootHoarder.exe
D:\逆水寒手游启动器>
electron: --openssl-legacy-provider is not allowed in NODE_OPTIONS
D:\逆水寒手游启动器>set NODE_OPTIONS=
D:\逆水寒手游启动器>LootHoarder.exe
D:\逆水寒手游启动器>
[0][info]17:20:45.998 鈥?[flag] cf6b3da55d90fc3960dcc9b2394ea9b5
s_ServerName: LHMW_NSHM_Main
press Ctrl+c to quit ... ...
根据以上信息我们可以得知错误为electron: --openssl-legacy-provider is not allowed in NODE_OPTIONS
Electron 报错:--openssl-legacy-provider is not allowed in NODE_OPTIONS
的原因与解决方案
一、问题描述
这意味着 Electron 无法启动,因为环境变量 NODE_OPTIONS
中包含了它不支持的选项 --openssl-legacy-provider
。
二、问题成因
1. 什么是 NODE_OPTIONS
NODE_OPTIONS
是 Node.js 提供的一个环境变量,用于在启动时传递参数给 Node.js 或 Electron 应用。比如:
set NODE_OPTIONS=--max-old-space-size=4096
表示在运行 Node 应用时,允许分配更多内存。
2. --openssl-legacy-provider
的作用
在 Node.js 17 及以上版本中,由于升级到了 OpenSSL 3.0,某些旧的加密算法(如 MD4)默认被禁用了。为了解决这类兼容性问题,开发者可以临时在 NODE_OPTIONS
中加上:
--openssl-legacy-provider
从而启用旧版加密算法。
3. Electron 不允许该选项
Electron 使用了自己封装的 Node.js 内核,在安全性方面更为严格。--openssl-legacy-provider
被视为不安全的遗留选项,因此 Electron 明确禁止在 NODE_OPTIONS
中使用它。
这就是出现该错误的根本原因。
三、解决方法
方法一:临时清除 NODE_OPTIONS
在命令行中手动运行程序前,先清除该环境变量:
set NODE_OPTIONS=
然后再执行你需要运行的 .exe
文件或启动命令:
your_program.exe
这适用于临时测试或调试场景。
方法二:永久移除环境变量设置
如果你的系统环境变量中永久设置了 NODE_OPTIONS
,可以通过以下步骤清除:
- 打开“控制面板”或右键“此电脑” → 属性 → 高级系统设置。
- 点击“环境变量”按钮。
- 在“系统变量”或“用户变量”中,查找名为
NODE_OPTIONS
的变量。 - 如果存在且包含
--openssl-legacy-provider
,请删除整个变量或将其值清空。 - 点击“确定”保存设置。
完成上述操作后,重新运行 Electron 应用,问题应当解决。
总结一下,这个错误是nodejs导致的,我怀疑是我在安装最近的claudecode时,改变参数导致的,网上找了好多没相同案例,自行排查了一下,记录一下以供参考。