javascript - 当 Electron 应用程序打包在 asar 中时使用 require

标签 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 内部)

最佳答案

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

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

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

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

关于javascript - 当 Electron 应用程序打包在 asar 中时使用 require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36487995/

相关文章:

javascript - requestAnimationFrame 是否杀死了 setInterval?

WPF 路径大小调整

javascript - Node.js 中的异步 module.exports 依赖项

javascript - 如何使用 Webpack 2 将 'require' 或 'import' 插入 js 文件中?

javascript - Browserify require 返回一个空对象

javascript - 我可以将导入语句提取到不同的文件吗?

javascript - gem Assets 内的配置不起作用

c++ - make/cc 找不到头文件,即使它的目录存在于 PATH 变量中

mysql - 更改 MariaDB 5.5 的数据目录

javascript - 每个单词的首字母大写,其余字母小写