如何在Node.js中自定义util.inspect()输出格式(无正则/第三方库)
解决Node.js中util.inspect()输出格式化的内置方案
util.inspect本身提供了多个配置参数,无需正则替换就能调整输出格式,组合使用可以贴近原生对象定义的样式:
核心配置参数
compact: false:强制每个属性单独换行,你已经用到这个参数解决换行问题indent:设置缩进空格数,比如indent: 2就能匹配手写对象的缩进风格quotes:指定属性名的引号类型,可选'single'或'double',能让属性名引号和原生定义一致depth:若对象有嵌套层级,设为null可展开所有层级;也可指定具体数值限制展开深度showHidden: false:默认值,避免显示对象的隐藏属性
示例代码
const util = require('util'); const targetObj = { username: 'demo', active: true, settings: { theme: 'dark', fontSize: 14 } }; const formattedResult = util.inspect(targetObj, { compact: false, indent: 2, quotes: 'single', depth: null }); console.log(formattedResult);
输出效果
{ username: 'demo', active: true, settings: { theme: 'dark', fontSize: 14 } }
该方案完全基于Node.js内置的util模块,不需要额外依赖或正则处理,输出格式基本和手写对象定义一致。需要注意的是,util.inspect的输出是调试用字符串,无法复刻手写对象的注释、自定义空行等细节,但足以满足常规的格式对齐需求。
内容的提问来源于stack exchange,提问作者NullDev
相关产品推荐
相关产品推荐

