electron执行npm run dev报错> electron-automation@1.9.0 dev > electron . --env=local App threw an error
报错信息是关于robotjs包的问题
> electron-automation@1.9.0 dev
> electron . --env=local
App threw an error during load
Error: The module '\\?\D:\project\electron-pack\node_modules\robotjs\build\Release\robotjs.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 93. This version of Node.js requires
NODE_MODULE_VERSION 109. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1810)
at Module._extensions..node (node:internal/modules/cjs/loader:1205:18)
at Object.func [as .node] (node:electron/js2c/asar_bundle:5:1810)
at Module.load (node:internal/modules/cjs/loader:988:32)
at Module._load (node:internal/modules/cjs/loader:829:12)
at c._load (node:electron/js2c/asar_bundle:5:13343)
at Module.require (node:internal/modules/cjs/loader:1012:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (D:\project\electron-pack\node_modules\robotjs\index.js:1:15)
at Module._compile (node:internal/modules/cjs/loader:1120:14)
终止批处理操作吗(Y/N)? D:\project\electron-pack\node_modules\electron\dist\electron.exe exited with signal SIGINT
^C
解决
执行命令
cnpm i electron@23.0.0
然后在
npm run dev
结果报错
> electron-automation@1.9.0 dev
> electron . --env=local
App threw an error during load
Error: The module '\\?\D:\project\electron-pack\node_modules\robotjs\build\Release\robotjs.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 93. This version of Node.js requires
NODE_MODULE_VERSION 113. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1822)
at Module._extensions..node (node:internal/modules/cjs/loader:1259:18)
at Object.func [as .node] (node:electron/js2c/asar_bundle:2:1822)
at Module.load (node:internal/modules/cjs/loader:1044:32)
at Module._load (node:internal/modules/cjs/loader:885:12)
at f._load (node:electron/js2c/asar_bundle:2:13330)
at Module.require (node:internal/modules/cjs/loader:1068:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (D:\project\electron-pack\node_modules\robotjs\index.js:1:15)
at Module._compile (node:internal/modules/cjs/loader:1174:14)
执行命令
npm rebuild --runtime=electron --target=23.0.0 --disturl=https://atom.io/download/atom-shell --abi=123
会报错
abi=123
npm ERR! code 1
npm ERR! path D:\project\electron-pack\node_modules\robotjs
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c prebuild-install || node-gyp rebuild
npm ERR! D:\project\electron-pack\node_modules\prebuild-install\node_modules\node-abi\index.js:36
npm ERR! throw new Error('Could not detect abi for version ' + target + ' and runtime ' + runtime + '. Updating "node-abi" might help solve this issue if it is a new release of ' + runtime)
npm ERR! ^
npm ERR!
npm ERR! Error: Could not detect abi for version 23.0.0 and runtime electron. Updating "node-abi" might help solve this issue if it is a new release of electron
npm ERR! at getAbi (D:\project\electron-pack\node_modules\prebuild-install\node_modules\node-abi\index.js:36:9)
npm ERR! at module.exports (D:\project\electron-pack\node_modules\prebuild-install\rc.js:73:57)
npm ERR! at Object.<anonymous> (D:\project\electron-pack\node_modules\prebuild-install\bin.js:9:25)
npm ERR! at Module._compile (node:internal/modules/cjs/loader:1196:14)
npm ERR! at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
npm ERR! at Module.load (node:internal/modules/cjs/loader:1074:32)
npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:909:12)
npm ERR! at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
npm ERR! at node:internal/main/run_main_module:22:47
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.4.1
npm ERR! gyp info using node@16.20.0 | win32 | x64
这时候npm run dev会报错
> electron-automation@1.9.0 dev
> electron . --env=local
App threw an error during load
Error: Cannot find module './build/Release/robotjs.node'
Require stack:
- D:\project\electron-pack\node_modules\robotjs\index.js
- D:\project\electron-pack\main.js
- D:\project\electron-pack\node_modules\.store\electron@23.0.0\node_modules\electron\dist\resources\default_app.asar\main.js
-
at Module._resolveFilename (node:internal/modules/cjs/loader:1002:15)
at n._resolveFilename (node:electron/js2c/browser_init:2:109457)
at Module._load (node:internal/modules/cjs/loader:848:27)
at f._load (node:electron/js2c/asar_bundle:2:13330)
at Module.require (node:internal/modules/cjs/loader:1068:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (D:\project\electron-pack\node_modules\robotjs\index.js:1:15)
at Module._compile (node:internal/modules/cjs/loader:1174:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1229:10)
at Module.load (node:internal/modules/cjs/loader:1044:32)
执行代码
cnpm install electron-rebuild
安装完成执行
./node_modules/.bin/electron-rebuild
这时候npm run dev 成功启动没有报错信息