在一次Electron开发中使用到robotjs,发现一直不能安装成功,问题出在robotjs版本和当前electron使用的node版本不一致问题,解决方法就是使用相同版本重新编译electron和robotjs,但是编译robotjs中涉及到一些其他工具安装,并没有那么顺利,终于折腾了几天搞定了。
环境和版本
- windows 10
- node v14.10.0
- electron 10.1.5
- robotjs 0.6.0
安装robotjs(使用管理员运行CMD)
cnpm install robotjs --save
安装中出现一系列报错先不用管,robotjs在安装后会进行一次编译,大概率是编译出现了问题。
重新编译robotjs(使用管理员运行CMD)
- 安装vs2013构建工具(windows-build-tools)
- python v2.7.3 注意3.x不支持
- 安装node-gyp
安装vs2013构建工具(windows-build-tools)
cnpm install -g --production windows-build-tools
- 出现安装失败可以手动在当前用户目录下
C:\Users\Administrator\.windows-build-tools - 安装:
vs_BuildTools.exe和python-2.7.15.amd64.msi
如果没有vs_BuildTools.exe,点击这里下载:
链接:pan.baidu.com/s/14oAJMdyI… 提取码:4grb
安装node-gyp
cnpm install -g node-gyp
运行报错的把之前安装过的node-gyp 或者使用npm yarn安装过的都删除掉再安装
重新编译robotjs
在项目的node_modules\robotjs下执行:
// 安装依赖
cnpm install
// 编译 指定之前安装的python来编译 目录一般在c盘
node-gyp rebuild --python C:\Python27\python.exe
重新编译electron
npm rebuild --runtime=electron --target=1.1.3 --disturl=https://atom.io/download/atom-shell --abi=48
--target: electron的版本
--abi: electron中Node对应的abi 地址:github.com/mapbox/node…
添加编译命令在scripts中
"rebuild": "npm rebuild --runtime=electron --target=10.1.5 --disturl=https://atom.io/download/atom-shell --abi=72"
执行:
npm run rebuild
无任何报错则编译成功:
参考文档
robotjs.io/docs/electr… robotjs在electron中使用
robotjs.io/docs/buildi… robotjs重新编译