robotjs 踩坑记——Robotjs 安装使用教程指南

想在 Electron 上实现跨应用复制文本,发现目前可能唯一能实现的是 robotjs。中途踩了不少坑,写下这篇安装教程指南记录。

1. 安装 robotjs

npm i robotjs

安装到了项目中,然后

require('robotjs');

2. 报错情况

很不幸,翻车了,报错提示

<project>/node_modules/robotjs/build/Release/robotjs.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 57. 
This version of Node.js requires NODE_MODULE_VERSION 54. 
Please try re-compiling or re-installing the module (for instance, using npm rebuild or npm install).

3.报错原因分析

意思是robotjs.node 是另外一个版本的 Node 编译的,与目前使用的 Node 版本不一致,需要重新编译一下robotjs。
大概翻了翻robotjs源码,的确发现有c文件,可能就是需要编译下,第一次接触这块,可能需要我更换对应NODE_MODULE_VERSION版本的node,但是查阅node文档发现不是node版本的问题,而是Electron使用的node版本。
使用 process.versions 命令查看版本
在这里插入图片描述

4. 解决方案

那正确的解决方案怎么办呢?直接使用 electron-rebuild 模块

yarn add electron-rebuild --dev
./node_modules/.bin/electron-rebuild

但是有个细节前提需要注意,那就是你需要electron-rebuild重新build的模块必须在dependencies中,不能在devDependencies中。因为electron-rebuild只会rebuild dependencies中依赖,具体可以看这里ref node version error

5.参考资料

  1. elecctron引入robotjs的坑
  2. npm安装deasync引用出错
  3. ref node version error
  4. electron node 版本不匹配的解决细节

以上


我是空谷,独立产品经理、全栈设计师、全栈工程师。
技术栈为 React/Dva/Umi/Node/Egg/Electron
欢迎加我微信交流 : kongguxs001,备注来源:CSDN

版权声明:本文为simplehouse原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/simplehouse/article/details/89944108

智能推荐

安装爬虫框架pyspider踩坑记

由于博主学过一段时间的Python爬虫,而在前不久又刚刚重装了win10系统,所以最近忙着也是在虚拟机里 配置爬虫所需的环境,今天在安装pyspider框架时,遇见了之前未遇见的麻烦,折腾了一两个小时才解决。 pyspider 介绍 pyspider 是国人 binux 编写的强大的网络爬虫框架,它带有强大的 WebUI 、脚本编辑器、任务监 控器、项目管理器以及结果处理器,同时支持多种数据库后端...

【OpenVINO】Win 10安装配置OpenVINO指南及踩坑记

    OpenVINO全称为开放式视觉推理和神经网络优化(Open Visual Inference & Neural Network Optimization),其前身是英特尔计算机视觉SDK(Computer Vision SDK),通过工具包中集成的三个全新API:深度学习部署工具包、通用的深度学习推理工具包以及OpenCV和OpenVX的优化功能,支持Tens...

记一次vscode安装eslint踩坑经历

  在公司电脑是别人安装好了的eslint,所以自己没有安装过,用着用着就习惯了,放假的时候在自己电脑上练习react,就想在自己电脑上安装一个eslint。开始第一步,创建一个react项目, 在vscode的terminal中输入npm create-react-app my-app,等了几分钟,一个目录结构就创建成功了 这一步不会出错,到这里项目已经可以运行了,直接输入 $cd m...

双显卡安装ubuntu+cuda踩坑记

  实验室配置的是双1080Ti显卡台式机。之前SSD硬盘坏掉了换新的之后,需要重装系统。虽然上次已经装过一次了,但是这次还是遇到很多bug。在这里记录一下供大家参考。   1.ubuntu安装 我是直接用u盘启动盘装的ubuntu18.04,这部分网上有很多教程,就不赘述了。这里关键的是一定要分区,这样未来重装时可以保留HOME的内容,我就是之前没有分区所以导致只能全部消掉。...

记一次安装Empire踩的坑

Empire下载: https://github.com/EmpireProject/Empire 直接git clone https://github.com/EmpireProject/Empire.git 安装环境: Kali Linux 2020.1a 安装: 下载之后来到“Empire-master/setup”目录 然后运行(多尝试几次): sudo ...

猜你喜欢

CORDIC arithmetic

传统CORDIC算法code Verilog代码: 时钟为50Mhz; 输出设置均设置为有符号数,主要是因为计算CORDIC算法时,需要判断Z通道的符号,来得到迭代过程中旋转方向。 然后根据缩放因子和arctan 2^-n 的预定义并乘以2^16 来进行后续计算,根据迭代方程写出代码;最后将(0度到90度)中正弦值与余弦值来扩大至(0度至360度)的正弦值与余弦值。 编写的tb文件如下: 最终使用...

dubbo源码解析-线程通讯原理

本来想通过Debug从头屡,发现意义不大,还是写点主通讯流程吧 本文基于JDK1.8;dubbo2.7.5 线程通讯原理 解释总体流程: DubboInvoker#doInvoker(Invocation)发起request,进入HeaderExchangeChannel 初始化Request对象(Dubbo自己封装的),初始化DefaultFuture将Request、channel放入,并记录...

使用Intellij Idea+Gradle 搭建Java 本地开发环境

Java 本地开发环境搭建 项目搭建采用技术栈为:Spring+Spring MVC+Hibernate+Jsp+Gradle+tomcat+mysql5.6 搭建环境文档目录结构说明: 使用Intellj Idea 搭建项目过程详解 项目各配置文件讲解及部署 各层包功能讲解&项目搭建完毕最终效果演示图 项目中重要代码讲解 5.配置tomcat 运行环境 6.webapp文件夹下分层详解 ...

js中array数组除重最快的方式(100万数据量下测试)

模拟100万数据 测试1 for循环 + in 运算符 (不是 for…in 循环) 测试2 双层for循环 (太慢了) while …同理。 测试3 for循环 + arr.indexof()判断 测试4 for…in循环 + in 运算符 测试结果...

轻量级java服务器undertow

项目需求 服务器端项目是用mina写的传统socket,准备升级到支持websocket接入。 为什么采用undertow 1、Undertow 是基于 NIO 的高性能 Web 嵌入式服务器,并且支持websocket(这个很重要,只要把undertow集成到项目中,用undertow启用websokcet,然后把原来的socket切换到websocket。) 2、轻量级web服务器:多么轻量级...