Usage with Electron of latest J5 versions?
Pimentoso opened this issue · 6 comments
Hello,
I maintain an Electron app that uses J5 to control an arduino board via usb. I need to upgrade the node version but the ancient Electron I'm using (9.x) is no good, so I need to upgrade it and it brings along J5+serialport as well.
But I keep getting the Loading non-context-aware native module in renderer
error
Uncaught Error: Loading non-context-aware native module in renderer: '/xxx/electron-johnny-five-examples/1-led/node_modules/@serialport/bindings/build/Release/bindings.node'. See https://github.com/electron/electron/issues/18397.
at process.func [as dlopen] (node:electron/js2c/asar_bundle:5:1812)
at Object.Module._extensions..node (node:internal/modules/cjs/loader:1199:18)
at Object.func [as .node] (node:electron/js2c/asar_bundle:5:1812)
at Module.load (node:internal/modules/cjs/loader:988:32)
at Module._load (node:internal/modules/cjs/loader:829:12)
at Function.c._load (node:electron/js2c/asar_bundle:5:13343)
at Function.o._load (node:electron/js2c/renderer_init:33:356)
at Module.require (node:internal/modules/cjs/loader:1012:19)
at require (node:internal/modules/cjs/helpers:102:18)
at bindings (/xxx/electron-johnny-five-examples/1-led/node_modules/bindings/bindings.js:112:48)
Which is raised by serialport, but a minimal app using Electron+serialport (no J5) works fine (Electron 17 and serialport 10.5.0) --> https://github.com/serialport/electron-serialport
Here is a minimal app using Electron+J5 demonstrating the error, if anyone wants to replicate
https://files.catbox.moe/tlezc1.zip
It's adapted from an example that can be found here https://github.com/sofroniewn/electron-johnny-five-examples (not maintained anymore)
The versions I'm aiming to upgrade are
- node 18
- electron 17
- J5 2.1.0
- serialport 10.5.0
I temporarily solved this by using johnny-five directly from the repo, since serialport has been updated to 10.5 which is N-API compliant
"johnny-five": "rwaldron/johnny-five",
And now electron does not complain about native modules in renderer.
I would still like a full example of johnny-five usage in electron with proper context isolation.
Hi @Pimentoso ,
could you please explain to a newby how to solve this? I'm trying to simply test led blinking so i can go on with the development, but i'm seriously stuck with this problem.
Thanks a lot.
Sure @ikcsup I will try making the led blink example work and push it on a repo so you can see the whole thing.
@Pimentoso, did you ever find a way around this? I'm looking to make a simple app with J5 and I was hoping to use electron for the UI, but I don't want to use really old versions of electron if possible
@JFigueroa51 nope sorry. In the end I kept using Electron 9 with Node 12 and updated all the libraries to the latest supported versions. It's a shame because I can't natively build a release for ARM macbooks anymore.
Also J5 doesn't look maintained anymore and I'm not good enough at node to fork and fix it myself.