当电子应用程序打包在asar中时使用require
Using require when electron app is packaged in an asar
在我的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");
试试这些组合,看看是否没有帮助。
相关文章:
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- 在gump和nodejs中使用Typescript时,未定义对require和exports的引用
- Typescript导入导出的类会发出require(..),从而导致浏览器错误
- 将require('..')与变量一起使用与在webpack中使用字符串相比
- 限制npm依赖模块's require(隔离)的用法
- 如何在不使用require语句的情况下使用webpack加载目录中的所有文件
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- 在javascript中的require中传递变量
- 避免重新评估和动态卸载用“require”调用的对象
- 弹出窗口-jQuery Mobile、Backbone.js和Require.js
- 在非SPA(单页应用程序)中使用Require.js和Backbone
- Angular2, doe's EventEmitter require zone.run?
- 在混合基本 URL 下动态加载 require.js 模块
- require('babel/register')不'不起作用
- Require in nodejs
- 使用Require.js按照依赖关系的顺序加载JavaScript
- ReferenceError:require未在javascript中定义
- 在nodejs中使用require来访问外部javascript文件
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- 当电子应用程序打包在asar中时使用require