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

时间:2016-04-07 22:00:28

标签: javascript path require electron asar

在我的main.js中,我有:

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

除非将应用程序打包为asar文件,否则此工作正常。我找到了一个“找不到模块”的模块。错误。

文档声明使用以下内容:

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

我尝试了但是得到了同样的错误。使用上述内容时路径从何处开始?路径是以electron.exe开头的吗?另外,如果我使用require(' /resources/app.asar/MainFrm.js')我将使用什么路径用于OS X应用程序,因为Resources文件夹位于不同的位置?我应该在开发/调试期间使用什么路径(即不在asar内部)

1 个答案:

答案 0 :(得分:0)

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

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

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

尝试一些组合,看看它是否有帮助。