electron + robotjs使用问题记录

873 阅读2分钟

mac系统下electron + robotjs使用记录

我需要模拟键盘输入,在当前任意编辑器中输入内容。

robotjs文档

开发环境

mac系统开发。

image.png

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 版本不匹配的解决细节