节点控制台日志阵列的当前LTS版本(v12.13.0),其长度> = 7,带有换行符,如何将它们重新记录到一行中?

问题描述 投票:0回答:1

我主要使用console.log在2D数组中打印一堆数字,但是在将节点更新为当前LTS版本(v12.13.0)之后,它现在使用换行符记录该数组。

作为比较:

// LTS v10
[ 1, 2, 3, 4, 5, 6, 7 ]

[
  [1, 2, 3, 4, 5, 6, 7],
  [1, 2, 3, 4, 5, 6, 7],
  [1, 2, 3, 4, 5, 6, 7],
  [1, 2, 3, 4, 5, 6, 7]
]

// LTS v12
[ 
  1, 2, 3, 4,
  5, 6, 7
]

[
  [
    1, 2, 3, 4,
    5, 6, 7
  ],
  [
    1, 2, 3, 4,
    5, 6, 7
  ],
  [
    1, 2, 3, 4,
    5, 6, 7
  ],
  [
    1, 2, 3, 4,
    5, 6, 7
  ]
]

我如何“修复”此问题?

PS:我不知道这是否重要,但我在git bash,Windows上

node.js
1个回答
1
投票

console.log使用util.inspect格式化和显示数据值。 util.inspect执行的格式化由collection of options控制,并且在节点v12中,其中某些选项的默认值已更改。

特别是,compact选项的默认值从true更改为3(比较v10 default options上方链接中的该选项)。这就是为什么数组现在分成多行的原因。

我现在没有方便的v12安装来进行测试,但是我相信您可以通过将compact对象中的true选项改回util.inspect.defaultOptions来恢复v10的行为。只要做:

util.inspect.defaultOptions.compact = true;

console.log数组之前在程序中的某个位置。稍后,我将尝试寻找时间来安装v12,以检查是否可行。

如果该方法不起作用,那么您可能还必须调整其他一些选项。 breaklength选项将是一个不错的选择。在最坏的情况下,您可能必须创建一个具有所需检查选项的Console单独实例,然后在该新实例(而不是全局log实例)上调用console方法以显示您的数组。

© www.soinside.com 2019 - 2024. All rights reserved.