2
ある時点で、Node.jsの子プロセスに改行文字でデータをチャンクするように伝えることができると思いました。以下のように、子プロセスからのstderrデータ・イベントは、行ではなく文字と単語に対して発火しています。理想的には、一連のデータが準備されているときにのみデータイベントを発生させるようにストリームに指示するフラグを渡すことができます。これを行う方法はありませんか?Node.jsデータストリームの改行でチャンクを取得
私はこれがあります。
const sh = spawn('sh', [ b ], {
cwd: cwd,
});
sh.stdout.pipe(fs.createWriteStream('/dev/null'));
var stderr = '';
var line = '';
sh.stderr.setEncoding('utf8');
sh.stderr.on('data', function (d) {
//trying to split by newlines, but this is hairy logic
const lines = String(d).split('\n');
line += lines.shift();
if(lines.length > 0){
if (!String(d).match(/npm/ig) && !String(d).match(/npm/ig)) {
stderr += d;
process.stderr.write.apply(process.stderr, arguments);
}
}
});
を、データが戻ってこのハンドラで来るが、行全体ではありません
sh.stderr.on('data', function (d) {
// d is chunks of data but not whole lines
});
は、焼成前に改行文字を待つために標準エラー出力を指示するが方法ではありません'data'イベント?
おかげで、私は署名欄NPMライブラリを見ていた:
は、ここで基本的な考え方です。 iMoこれはコアライブラリ機能でなければなりませんが、idk –
Well:D NodeJSは常にコア機能を中心にモジュールを構築しています。とにかくそれは決定するコアdevsまでです、私は推測します。 – drinchev
これは正しいアイデアですが、すぐに緑色の小切手をお渡しします –