Javascript 当electron应用程序打包在asar中时使用require

Javascript 当electron应用程序打包在asar中时使用require,javascript,path,require,electron,asar,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.

在我的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");
试试这些组合,看看是否有用