尝试从我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。
答案 0 :(得分:0)
another related issue's comments添加{ATOM_SHELL_INTERNAL_RUN_AS_NODE : 0}
的环境变量的建议有助于使用fork
代替spawn
成功解决问题