Skip to content

Commit 3a4f50e

Browse files
committed
fix(build): fix log write when errer
1 parent d6dcd6c commit 3a4f50e

File tree

1 file changed

+17
-1
lines changed
  • packages/mars-build/src/helper

1 file changed

+17
-1
lines changed

packages/mars-build/src/helper/log.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,38 @@ const readline = require('readline');
99
const WRITE_MAGIC_CODE = '\u001b[0m\u001b[0m\u001b[0m ...';
1010

1111
// hook stdout to get last line write
12+
// const util = require('util');
13+
// util.debug('stdout: ' + util.inspect(string));
1214
let lastLineStr = '';
1315
hookStdout(string => {
1416
lastLineStr = /\n$/.test(string) ? string : lastLineStr;
17+
}, () => {
18+
// when stderr reset lastLineStr
19+
lastLineStr = '';
1520
});
1621

17-
function hookStdout(callback) {
22+
// hookStdout from https://gist.github.com/pguillory/729616
23+
function hookStdout(callback, callbackErr = callback) {
1824
const oldWrite = process.stdout.write;
25+
const oldWriteErr = process.stderr.write;
1926
process.stdout.write = (function hookStdoutWrite(write) {
2027
return function hookedStdoutWrite(...args) {
2128
write.apply(process.stdout, args);
2229
callback.apply(null, args);
2330
};
2431
})(process.stdout.write);
2532

33+
// hook stderr
34+
process.stderr.write = (function hookStderrWrite(write) {
35+
return function hookedStderrWrite(...args) {
36+
write.apply(process.stdout, args);
37+
callbackErr.apply(null, args);
38+
};
39+
})(process.stderr.write);
40+
2641
return function unhook() {
2742
process.stdout.write = oldWrite;
43+
process.stderr.write = oldWriteErr;
2844
};
2945
}
3046

0 commit comments

Comments
 (0)