我有一个电子应用程序,它基于电子反应样板模板项目。在我的应用中,我在
的myClass.js
文件中有一个类
app/utils/myClass.js
class MyClass {
// A bunch of stuff...
}
module.exports = MyClass;
我在渲染器过程预加载脚本中引用了此类。
app/utils/preload.js
const MyClass = require('./myClass.js');
我像这样加载渲染器后台工作进程
const workerWindow = new BrowserWindow({
show: false,webPreferences: {
nodeIntegration: false,contextIsolation: true,preload: require('path').join(__dirname,'utils','preload.js')
}
});
当我在开发/调试模式下运行该应用程序时,发现MyClass
模块很好,并且所有代码都可以正常工作。但是,当我打包应用程序(使用electron-builder)并在Windows上安装时,运行代码会导致以下错误:
{"code":"MODULE_NOT_FOUND","requireStack":["C:\\Users\\Cooper\\AppData\\Local\\Programs\\my-app\\resources\\app\\utils\\myClass.js","C:\\Users\\Cooper\\AppData\\Local\\Programs\\my-app\\resources\\app\\utils\\preload.js"]}
由于某种原因,即使我可以确认文件位于打包的.asar归档文件中的适当目录中,该应用程序也找不到我的MyClass模块。我尝试了require
使用MyClass的许多不同方法,但无济于事。
为什么打包的应用程序找不到MyClass模块?我该如何解决?值得一提的是,我的preoload.js脚本对其他任何依赖都没有问题。例如,我可以毫无问题地进行require('electron')
。