解决一个开发者机器上的Electron APP无法启动问题

最近公司开始用Cursor了,碰到一起Cursor的Windows端electron应用无法打开问题。
在这里记录、分享一下现象和解决办法。

• 现象1: Cursor启动后,在任务管理器后台进程中出现不到1秒就自动退出,没有任何界面。
• 现象2: Powershell中运行 & “$env:LOCALAPPDATA\Programs\Cursor\Cursor.exe” --disable-gpu --no-sandbox 提示 bad option

Microsoft Windows [Version 10.0.26100.7462]
(c) Microsoft Corporation. All rights reserved.
 
C:\Users\xxx>"%LOCALAPPDATA%\Programs\Cursor\Cursor.exe" ^
More?   --disable-gpu ^
More?   --disable-gpu-sandbox ^
More?   --no-sandbox
 
C:\Users\xxx>C:\Users\xxx\AppData\Local\Programs\Cursor\Cursor.exe: bad option: --disable-gpu
C:\Users\xxx\AppData\Local\Programs\Cursor\Cursor.exe: bad option: --disable-gpu-sandbox
C:\Users\xxx\AppData\Local\Programs\Cursor\Cursor.exe: bad option: --no-sandbox

• 现象3: 没有生成任何日志,%appdata%/Cursor 目录不存在。其他任何第一次打开会创建的目录也都没有。
• 现象4: 重启/重装/关闭杀毒软件都无效,但公司同样镜像安装的其他电脑都是正常的。开发人员自行校验了安装包和应用程序,都没有问题。
• 现象5: 管理员权限或者移动安装目录到其他位置也不能修复问题。

综上,我想到了环境变量的问题。
检查编程工具引入的环境变量:
• NODE_OPTIONS
• ELECTRON_RUN_AS_NODE
• ELECTRON_NO_ATTACH_CONSOLE
• VSCODE_*
• CURSOR_*
例如:
NODE_OPTIONS=–inspect=0.0.0.0:9229
NODE_OPTIONS=–openssl-legacy-provider
ELECTRON_RUN_AS_NODE=1
这些环境变量都会导致Cursor launcher无法启动。

最终在那台机器上看到了可能是由某些IDE调试器引入的环境变量 ELECTRON_RUN_AS_NODE=1
这个变量让electron应用打开时不启动图形界面,以node.js解释器来运行,在没有任何js需要执行的情况下,它就直接结束工作了。