I am having an issue packing my application into a single .asar
file. I am using electron-builder
to initiate packing of the .asarfile. If I do not package the app into an asar, it works as expected if I unpack the generated asar, it also works as expected.
However, running the electron using the asar produces this error:
Error: Cannot find module './MyModuleBase'
at Module._resolveFilename (internal/modules/cjs/loader.js:584:15)
Previously, the asar was working without issue but we did some refactoring in the project splitting code out into a new module.
**Initial Configuration (ASAR Working) **
+--electron-application
+--application
electron-application
depends on the application
module.
**New Configuration (ASAR Broken) **
+--electron-application
+--application
+--application-core
electron-application
depends on the application
module and application
depends on application-core
MyModuleBase is in the application-core module
One other point which may be relevant: The application is being packaged with web-pack using the webpack-stream module.
Update: I've solved the problem, however I would still like to know why the .asar version would fail and extracting the files would work.
After digging into this further, it looks like the root cause of the problem is further upstream. The main process was referencing a class in application
, however main process is not being webpacked. The class has been moved to main, and now everything works as expected. It appears the Electron app was able to resolve the files in the unpackaged state, but not the packaged state.