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

Pass a packed JS file within an asar package to a spawned node child process

当尝试从我的 (previously atom-shell) that runs node path/to/a/packed/file I am getting Cannot find module error because the path is within the app.asar archive (where asar 中生成 node.js child_process 时,是 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 documentation/code 的人可以建议一个解决方法吗?

我也在 atom/electron GitHub 回购上为此提出了 an issue/question

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

的问题

更多详情可以在the GitHub issue

上看到