2

次のように、ASAR ファイル内にアーカイブされているスクリプトを実行しようとしています。

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);

参考までに、上記のスクリプトは ASAR アーカイブの外にあります。ただし、次のエラーだけが表示されます。

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

この特定の問題に関する公式ドキュメントは存在しません。ASAR ファイルを読み取るか、その中にスクリプトを要求する方法はありますか? ありがとうございました。

4

1 に答える 1

2

後世のために、これに対する答えは次のrequireように .js ファイルにあります。

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);

お役に立てれば。

于 2017-01-29T08:36:09.267 に答える