如何使util.inspect()输出结果始终保持单行格式?
解决util.inspect()输出换行问题
嘿,这个问题我之前调试的时候也踩过坑!util.inspect默认会换行来让复杂对象更易读,但要强制输出单行其实只需要调整它的配置选项就行,给你两个实用的方法:
方法1:通过compact + width参数强制单行
你可以给util.inspect()传入配置对象,把compact设为true,同时将width设为Infinity(表示输出宽度无限制),这样就能让所有内容挤在一行:
const util = require('util'); const testObj = { name: 'Alice', age: 30, hobbies: ['reading', 'coding'], address: { city: 'NY', zip: '10001' } }; // 单行输出 console.log(util.inspect(testObj, { compact: true, width: Infinity }));
方法2:用compact: Infinity更简洁(Node.js v10+支持)
从Node.js v10开始,compact参数支持传入Infinity,这个值会直接强制所有层级的内容都输出在一行,无需额外设置width,写法更简洁:
console.log(util.inspect(testObj, { compact: Infinity }));
额外提示
如果你的对象嵌套层级很深,默认的depth参数(默认值是2)会截断深层内容,要是需要完整显示所有层级,记得加上depth: Infinity:
console.log(util.inspect(deepNestedObj, { compact: Infinity, depth: Infinity }));
这样就能得到你想要的完全单行的输出了,亲测好用!
内容的提问来源于stack exchange,提问作者user7898461
相关产品推荐
相关产品推荐

