mac系统下electron + robotjs使用记录
我需要模拟键盘输入,在当前任意编辑器中输入内容。
开发环境
mac系统开发。
npm view node-gyp version
10.1.0
node -v
v16.18.0
引入操作
npm install robotjs
cd .\node_modules\robotjs
npm install ,一直在报错
node-gyp rebuild --runtime=electron --target=21.4.4 --disturl=atom.io/download/at… --abi=93
npm run install ,一直在报错
npm run rebuild ,没有执行成功
报错记录
执行第一步 npm install,就一直在报错。
npm ERR! path /Users/xxx/vs2024proj/robotjs-xd/robotjs/node_modules/electron npm ERR! command failed npm ERR! command sh -c -- node install.js Downloading electron-v1.8.2-darwin-arm64.zip npm ERR! Error: GET npmmirror.com/mirrors/ele… returned 404 npm ERR! /Users/xxx/vs2024proj/robotjs-xd/robotjs/node_modules/electron/install.js:47 npm ERR! throw err npm ERR! ^ npm ERR! npm ERR! Error: Failed to find Electron v1.8.2 for darwin-arm64 at npmmirror.com/mirrors/ele… npm ERR! at Request. (/Users/xxx/vs2024proj/robotjs-xd/robotjs/node_modules/nugget/index.js:169:61)
- 奇怪,为什么一直要下载npmmirror.com/mirrors/ele… ?
- 查看依赖,发现robotjs依赖的 "targetpractice": "0.0.7" 需要依赖 electron 1.8.2以上版本。下载targetpractice下来之后,也不会改代码。就放弃了。
MAC系统解决办法
- 卸载、重新安装折腾了几次,最后使用electron-rebuild解决了。
npm install robotjs
./node_modules/.bin/electron-rebuild
有个细节需要注意:需要electron-rebuild重新build的模块必须在dependencies中,不能在devDependencies中。因为electron-rebuild只会rebuild dependencies中依赖,具体可以看这里ref node version error
window系统解决办法
- 用的是electron-builder,在项目根目录下执行 ./node_modules/.bin/electron-rebuild
- 可以添加这个命令,出现node版本不匹配的时候用这个命令构建一下即可
npm install robotjs
"scripts": {
...
"postinstall": "electron-builder install-app-deps"
},
源码调用
const robot = require("robotjs");
robot.typeString("Hello");
// Press enter.
robot.keyTap("enter");
参考文档
electron-vue使用robotjs操作鼠标键盘-CSDN博客
electron windows robotjs 安装教程-CSDN博客
Windows下Electron安装robotjs遇到的问题 - 掘金 # electron node 版本不匹配的解决细节