将 asar 包中的打包 JS 文件传递给生成的节点子进程
Pass a packed JS file within an asar package to a spawned node child process
当尝试从我的 electron (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
上看到
当尝试从我的 electron (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
上看到