You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pkg打包node/express项目为exe时因robotjs报错无法运行

解决方案

你遇到的错误本质是robotjs为包含C++编译产物的原生Node模块,pkg打包时无法自动正确处理这类模块的二进制文件,且运行时找不到对应版本的.node产物,可按以下步骤修复:

  • 首先安装缺失的prebuild-install依赖,全局和项目本地各装一次:
npm install -g prebuild-install
npm install prebuild-install --save-dev
  • 修改package.json中的pkg配置,明确指定需要打包的robotjs二进制文件,同时补全target的平台架构信息:
"pkg": {
  "assets": [
    "templates/**/*",
    "public/**/*",
    "node_modules/robotjs/build/Release/robotjs.node"
  ],
  "targets": [
    "node14-win-x64"
  ],
  "outputPath": "dist"
}
  • 重新编译适配node14版本的robotjs二进制产物,将命令中的14.x.x替换为你本地实际安装的node14完整版本号:
npm rebuild robotjs --target=14.x.x --runtime=node --arch=x64
  • 执行pkg .完成打包后,手动将node_modules/robotjs/build/Release/robotjs.node复制到dist目录下,和生成的exe文件放在同一级路径。
  • 如果仍无法运行,修改代码中引入robotjs的逻辑,改为直接加载同目录下的二进制文件:
const path = require('path');
const robot = require(path.join(process.execPath, '../robotjs.node'));

内容的提问来源于stack exchange,提问作者earlycoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:06:04