我在将应用程序打包到单个.asar
文件中时遇到问题。我正在使用electron-builder
启动.asarfile的打包。如果我不将应用程序打包为asar,则将生成的asar拆包时,它可以按预期运行,也可以按预期运行。
但是,使用asar运行电子会产生以下错误:
Error: Cannot find module './MyModuleBase'
at Module._resolveFilename (internal/modules/cjs/loader.js:584:15)
以前,asar可以正常工作,但是我们在项目分解中将代码分成了一个新模块进行了一些重构。
**初始配置(ASAR工作)**
+--electron-application
+--application
electron-application
取决于application
模块。
**新配置(ASAR损坏)**
+--electron-application
+--application
+--application-core
electron-application
取决于application
模块,而application
取决于application-core
MyModuleBase位于应用程序核心模块中
可能与此有关的另一点:正在使用webpack-stream模块将应用程序与web-pack打包在一起。
更新:我已经解决了该问题,但是我仍然想知道为什么.asar版本会失败并提取文件。
答案 0 :(得分:0)
进一步研究之后,问题的根本原因似乎就在上游。主要过程正在引用application
中的类,但是主要过程并未进行网络打包。该课程已移至主要课程,现在一切正常。看来Electron应用程序能够解析未打包状态的文件,但无法解析打包状态的文件。