使用electron-builder构建Electron应用时遇node-gyp文件缺失问题求助
解决electron-builder构建时node-gyp找不到binding.cc的问题
构建Electron应用时遇到node-gyp报错,提示找不到../src/binding.cc,日志如下:
⨯ node-gyp.cmd exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE Output: Warning: Missing input files: C:\Users\%user%\source\repos\electronvueapp\build\..\src\binding.cc �믮������ ������⥫쭠� ᡮઠ ��⮢ � �⮬ �襭��. �⮡� ������� ��ࠫ������ ᡮ��, ������� ��ࠬ��� "-m". binding.cc c1xx : fatal error C1083: �� 㤠���� ������ 䠩� ���筨�: ..\src\binding.cc: No such file or directory, [C:\Users\%user%\source\repos\electronvueapp\build\binding.vcxproj]
常见的手动创建空binding.cc的方法无效,因为每次构建时build文件夹会被删除重建,文件无法保留。可以尝试以下几种解决方案:
删除不必要的binding.gyp文件:如果你的项目没有用到Native模块,检查项目根目录是否存在
binding.gyp,直接删除它,node-gyp就不会触发编译流程,也就不会去找这个文件了。配置构建前自动生成文件:在
package.json的scripts中添加预构建命令,让每次构建前自动在指定路径创建空的binding.cc:
针对Windows系统:"scripts": { "prebuild": "if not exist src mkdir src && type nul > src\\binding.cc", "build": "electron-builder" }针对Linux/macOS系统:
"scripts": { "prebuild": "mkdir -p ./src && touch ./src/binding.cc", "build": "electron-builder" }执行
npm run build时,会先执行prebuild命令生成文件,再启动构建。检查并修复依赖问题:如果是某个第三方依赖自动生成了错误的构建配置,尝试删除
node_modules和package-lock.json(或yarn.lock),重新安装依赖;或者升级相关依赖到最新版本,看是否能解决配置错误的问题。修正binding.gyp的路径配置:如果项目确实需要编译Native模块,打开
binding.gyp文件,检查sources字段中是否包含了错误的../src/binding.cc路径,修正为实际存在的文件路径,或者移除这个不存在的条目。
内容的提问来源于stack exchange,提问作者LoC
相关产品推荐
相关产品推荐

