Warning 缺少堆栈信息
情景是运行时发现日志只有下面这样的消息,没有任何堆栈。
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [File]. Use emitter.setMaxListeners() to increase limit
这是因为在 node v6.0.0 之前 warning 是会打印堆栈的,6.0.0 之后,改成了需要开发者自己监听 process 的 warning 事件。
两种解决方案:
- node 启动参数里加
--trace-warnings
。 - 在程序里监听 process 的 warning 事件。
process.on('warning', (warning) => {
console.warn(warning.name); // Print the warning name
console.warn(warning.message); // Print the warning message
console.warn(warning.stack); // Print the stack trace
});
具体参考 NodeJS 官方文档