将asar包中的压缩JS文件传递给生成的节点子进程

时间:2015-07-15 02:50:05

标签: javascript node.js child-process spawn electron

尝试从我(以前的原子shell)中运行child_process时生成一个node.js node path/to/a/packed/file,我得到Cannot find module error,因为路径在app.asar存档(其中asar是类似tar的存档格式)。

Error: Cannot find module 'C:\Program Files (x86)\my-app\resources\app.asar\bootstrap\daemon'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

我理解这是因为未修补的节点正在尝试在归档中找到bootstrap/daemon模块,就像它是一个物理文件一样。

对asar文档/代码更熟悉的人可以为此建议解决方法吗?

我还在原子/电子GitHub回购中为此提出了an issue/question

1 个答案:

答案 0 :(得分:0)

another related issue's comments添加{ATOM_SHELL_INTERNAL_RUN_AS_NODE : 0}的环境变量的建议有助于使用fork代替spawn成功解决问题

可在the GitHub issue

上查看更多详情