在一个应用程序中,大多数文件都打包在Asar存档中(nodejs.js不是)我试图生成一个节点进程,同时传递一个文件,这次是打包的。
我的文件夹结构如下:
这是我的代码:
this.fileToPass = join(this.$.env.app.root, 'main.js');
//The path is now something like: directory/app.asar/main.js
var self = this;
/***************/
//Some more code
/**************/
self.process = spawn('/path/to/node', [self.fileToPass], {
env: self.config
// stdio: 'inherit'
});
但是我一直在遇到这个错误:
Error: Cannot find module '/directory/app.asar/app/main.js'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.runMain (module.js:590:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
我在我的智慧结束。什么可能导致这种行为?有没有办法绕过这个问题?
PS:fork也不是一个真正的选择,因为我需要稍后管道stdout和stderr。
谢谢。