当电子应用程序打包在asar中时使用require

Using require when electron app is packaged in an asar

本文关键字:require asar 应用程序      更新时间:2024-03-10

在我的main.js中,我有:

var mainFrm = require('./MainFrm');

除非将应用程序打包为asar文件,否则此操作效果良好。我收到一个"找不到模块"错误。

文件规定使用以下内容:

require('/path/to/example.asar/dir/module.js');

我试过了,但还是出了同样的错误。使用以上内容时,路径从哪里开始?路径以electron.exe开头是吗?此外,如果我使用require('/resources/app.asar/MainFrm.js'),由于resources文件夹在不同的位置,我应该为OS X应用程序使用什么路径?在开发/调试期间(即不在asar内部)我应该使用什么路径

我认为您可能有两个问题。首先,您可能需要明确文件扩展名,从而查找MainFrm.js,而不仅仅是MainFrm。其次,尝试使用resolve来确定相对于当前目录的名称。

解决此问题的一种方法是在运行时解析路径,如下所示:

    var mainFrm = require("path").resolve(__dirname, "./MainFrm.js");

试试这些组合,看看是否没有帮助。