使用asar-archived文件生成节点

时间:2016-08-22 11:10:47

标签: javascript node.js

在一个应用程序中,大多数文件都打包在Asar存档中(nodejs.js不是)我试图生成一个节点进程,同时传递一个文件,这次是打包的。

我的文件夹结构如下:

  • nodejs.js
  • app.asar
    • myfile.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。

谢谢。

0 个答案:

没有答案