cheers-mp-service
Version:
提供插件化的零配置小程序脚手架服务
56 lines (46 loc) • 1.34 kB
JavaScript
const { start, error, done, log } = require("../../utils/logger");
const prettyTime = require("pretty-hrtime");
function formatError(e) {
if (!e.error) {
return e.message;
}
// PluginError
if (typeof e.error.showStack === "boolean") {
return e.error.toString();
}
// Normal error
if (e.error.stack) {
return e.error.stack;
}
if (typeof e.error === "object") {
try {
e.error = JSON.stringify(e.error);
} catch (error) {}
}
return new Error(String(e.error)).stack;
}
function logEvents(gulpInst) {
const loggedErrors = [];
gulpInst.on("start", function (evt) {
if (["watch", "<series>", "<parallel>"].includes(evt.name)) return;
log();
start("'" + evt.name + "'...");
});
gulpInst.on("stop", function (evt) {
if (["watch", "<series>", "<parallel>"].includes(evt.name)) return;
const time = prettyTime(evt.duration);
log();
done("'" + evt.name + "'耗时" + time);
});
gulpInst.on("error", function (evt) {
const msg = formatError(evt);
const time = prettyTime(evt.duration);
error("'" + evt.name + "' errored after" + time);
// If we haven't logged this before, log it and add to list
if (loggedErrors.indexOf(evt.error) === -1) {
error(msg);
loggedErrors.push(evt.error);
}
});
}
module.exports = logEvents;