Reputation: 63
Hello, my problem is when I include the library SerialPort.io in my cordova-electron projet, build crashe on windows 10 , window 11 and Ubuntu 22.04.
Build launch and I can use serial port.
Build don't launch and error is displayed.
I am trying to use the serial port library on cordova-electron.
When i use
cordova run electron --nobuild
, this work perfectly and the application is launch.
When i want to do the build, I use
cordova build android
and there are no errors.
But when I launch the build , this error is displayed :
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'serialport'
Require stack:
- /pathToMyProject/cordova/platforms/electron/build/linux-unpacked/resources/app.asar/cdv-electron-main.js
-
at Module._resolveFilename (internal/modules/cjs/loader.js:892:15)
at Function.n._resolveFilename (electron/js2c/browser_init.js:245:1128)
at Module._load (internal/modules/cjs/loader.js:737:27)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Module.require (internal/modules/cjs/loader.js:964:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/pathToMyProject/cordova/platforms/electron/build/linux-unpacked/resources/app.asar/cdv-electron-main.js:27:24)
at Module._compile (internal/modules/cjs/loader.js:1083:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1113:10)
at Module.load (internal/modules/cjs/loader.js:940:32)
The line "cdv-electron-main.js:27:24" is
const { SerialPort } = require("serialport");
I have the same issue in Windows 10, Windows 11 and Ubuntu22.04.
Create a projet with cordova-electron
npm i -g cordova
cordova create sampleApp
cd sampleApp
cordova platform add electron
Add serialport
npm i serialport
Update sampleApp/platforms/electron/platform_www
#Add this in top of file
const { SerialPort } = require("serialport");
#And after all the const declarations, add this
console.log("hello serialport : " , SerialPort);
Try it with
cordova run electron --nobuild
That work and the console.log is make.
Build the project with
cordova build electron
There are no errors
But when you try to open the executable (for exemple in window, it is in /sampleApp/platforms/electron/build/win-unpacked/HelloCordova.exe, this error message is displayed
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'serialport'
Require stack:
- /pathToMyProject/cordova/platforms/electron/build/linux-unpacked/resources/app.asar/cdv-electron-main.js
-
at Module._resolveFilename (internal/modules/cjs/loader.js:892:15)
at Function.n._resolveFilename (electron/js2c/browser_init.js:245:1128)
at Module._load (internal/modules/cjs/loader.js:737:27)
at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
at Module.require (internal/modules/cjs/loader.js:964:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/pathToMyProject/cordova/platforms/electron/build/linux-unpacked/resources/app.asar/cdv-electron-main.js:27:24)
at Module._compile (internal/modules/cjs/loader.js:1083:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1113:10)
at Module.load (internal/modules/cjs/loader.js:940:32)
Ubuntu 22.04
serialport : 12.0.0 Ubuntu : 22.04 cordova-electron : 3.1.0 cordova : 12.0.0 react:18.2.0
Documentation cordova-electron
Documentation SerialPort.io
Upvotes: 1
Views: 312