DC娱乐网

不知是WorkBuddy坑了我,还是我坑了WorkBuddy。 这几天,想做一套

不知是WorkBuddy坑了我,还是我坑了WorkBuddy。
这几天,想做一套教师日常工作能用到的工具箱,由于前期用WorkBuddy开发了几个工具成功也很顺利,所以本次我也毫不犹豫地选择了它。在它的推荐下使用了Electron开发,一开始也很顺利,安装了Electron 33 ,可在我开发一个无边框悬浮工具时却怎么也拖动不了,多次修改后问题无法解决。此时,WorkBuddy提示说Electron 33对窗口拖动支持不好,让我降级到28版本。当时没加思索就让它这么干了,哪知噩梦就此产生。两天里,WorkBuddy一直在反复安装 28、33都没有成功,虽然是让它自己一直在没日没夜地干着,但我也跟着抓狂了。直到刚刚,我还是放弃了让它自动干活,自己在豆包的帮助下自己手动装环境安排好了。总结一下,这几天在安装Electron的过程中遇到的坑主要有:
1.二进制安装底层坑(反复重装 v28/v33 都残缺的根源)
npm 安装仅下载 JS 外壳,不会自动完整拉取 exe/asar 二进制
执行npm i electron只会装好 node_modules/electron 下的 index.js 壳子,postinstall 下载脚本极易因网络、镜像、Defender 拦截静默失败,dist 文件夹为空 / 缺失核心文件。
单独运行 install.js 不会读取项目.npmrc 镜像
.npmrc 仅 npm 安装阶段生效,执行node install.js时不会加载国内镜像,直连 GitHub 超时无任何报错输出,界面空白看不出失败。
缺失 path.txt 直接导致 require ('electron') 返回空对象 {}
electron 包 index.js 逻辑:读取 dist/path.txt 输出 exe 路径;文件不存在时无导出值,CommonJS 模块默认输出空对象,你一度误以为是代码逻辑 bug。
官方压缩包解压后 dist 缺少 path.txt 文件
手动离线下载 zip 覆盖 dist 方案里,二进制包本身不带 path.txt,必须手动新建填写 exe 路径才能正常被 node 识别。
npm 新版不识别 electron 系列镜像配置,产生警告
npm v11.9.0 将 electron_mirror、electron_builder_binaries_mirror 判定为未知配置项,每次启动弹出警告,虽不影响功能但容易造成困惑。
2.启动方式致命逻辑坑(90% API 报错来源)
混淆 node 运行环境 & Electron 内置运行时
node xxx.js:纯 Node 环境,require ('electron') 仅返回 exe 路径字符串,无法使用 app、BrowserWindow、无边框窗口拖拽等所有 Electron API;
electron . / npx electron:混合运行时,内置完整 Chromium+Node,才能正常解构窗口 API。
package.json 脚本错误配置"start": "node run.js"
用 node 命令作为启动入口,直接复现「拿不到窗口 API、无边框窗口无法拖动」问题,也是你从 v33 切 v28 后功能异常的核心诱因。
3.缓存污染连环坑(重装 N 次问题依旧)
系统全局 Electron 缓存残留损坏包
% LOCALAPPDATA%.cache\electron、% APPDATA%\electron 缓存文件夹存放残缺二进制,每次安装自动复用坏包,不清空缓存重装无意义。
node_modules、package-lock.json 碎片残留
旧版本依赖碎片冲突,必须彻底删除文件夹 + 清理 npm 缓存,再全新安装对应版本。
总结真起来,我感觉是不是Windows Defender 静默删除 dist 内 dll、asar(我电脑中未装其他安全工具),才是问题的根源。
安装完成瞬间杀毒后台隔离资源,肉眼看文件夹存在,但打开发现 default_app.asar、dll 全部消失,反复重装依旧缺文件。