node + electron + robotjs 版本不兼容报错问题解决

一、

node 安装好之后,再安装electron要注意的版本问题,版本对应查询electron与node.js的版本对应关系(全版本)_哆啦好梦的博客-CSDN博客_electron node版本对应关系

或者安装完成后   打开 全局electron --abi 或 局部 npx electron --abi  

二、

步骤一使 electron + node版本对上之后,加上robotjs :

1.(1)可能问题一:安装robotjs,发现各种报错,

App threw an error during load
Error: A dynamic link library (DLL) initialization routine failed.
\\?\D:\vue\lianji\node_modules\robotjs\build\Release\robotjs.node
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:166:20)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:740:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:166:20)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:559:12)
    at Function.Module._load (internal/modules/cjs/loader.js:551:3)
    at Module.require (internal/modules/cjs/loader.js:658:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object. (D:\vue\lianji\node_modules\robotjs\index.js:1:170)
    at Object. (D:\vue\lianji\node_modules\robotjs\index.js:38:3)

(2)可能问题二:或复制以前的文件夹,报找不到模块的错误,abi 版本对不上, 按有些人说的再次装环境和node-gyp rebuild 编译等还是报错

2.解决方法:(以我电脑为例,按之前方法知道对应abi为64,在package.json加入 scripts)

"scripts": {
    "start": "electron .",
    "package": "electron-packager . HelloWorld --platform=win32 --out ./out --electron-version=3.0.0 --overwrite --abi=64 --arch=x64",
    "rebuild": "npm rebuild --runtime=electron --target=3.0.0 --disturl=https://atom.io/download/atom-shell --abi=64"
  },

运行 npm run rebuild 或 直接 

npm rebuild --runtime=electron --target=3.0.0 --disturl=https://atom.io/download/atom-shell --abi=64    

--target=3.0.0  为electron 版本, --abi为对应查询的的ABI版本

再运行 npm run start 发现已正常运行

你可能感兴趣的:(nodejs,electron,electron,node.js)