Executing a script inside an ASAR archive

怎甘沉沦 提交于 2019-12-08 03:31:15

问题


I am attempting to run a script that is archived inside an ASAR file like so:

var spawn  = require('child_process').spawn;

var t = spawn('node', ['./bundle.asar/main.js'], {});

t.on('data', function(data){      
  console.log(data.toString());
});

t.stdout.pipe(process.stdout);
t.stderr.pipe(process.stderr);

FYI the above script is situated outside the ASAR archive. However, all I get is the following error:

Cannot find module 'C:\Users\MyUser\tests\asar-test\bundle.asar\main.js'

The official docs on this particular issue are nonexistent. Is there some way to either read the ASAR file or require a script inside it? Thank you.


回答1:


For posterity, the answer to this is to require your .js file like so:

var spawn  = require('child_process').spawn;
var myScript = require('./bundle.asar/main.js');

var t = spawn('node', [myScript], {});

t.on('data', function(data){      
  console.log(data.toString());
});

t.stdout.pipe(process.stdout);
t.stderr.pipe(process.stderr);

Hope this helps.



来源:https://stackoverflow.com/questions/41085174/executing-a-script-inside-an-asar-archive

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!