当尝试从运行node path/to/a/packed/file
的电子(以前的原子壳)中生成node.js child_process
时,我得到Cannot find module error
,因为路径在app.asar
存档内(其中asar是tar-like归档格式)。
Error: Cannot find module 'C:Program Files (x86)my-appresourcesapp.asarbootstrapdaemon'
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文档/代码建议解决这个问题?
我也在atom/electron GitHub repo上提出了一个问题。
从另一个相关问题的评论中添加{ATOM_SHELL_INTERNAL_RUN_AS_NODE : 0}
的环境变量的建议有助于成功解决使用fork
代替spawn
的问题
更多细节可以在GitHub issue上看到