如何固定转换圆形结构为JSON
#javascript #教程 #webpack #node

通常,在微调构建过程时,您需要输出大量数据。

常见的情况是当您在WebPack中跟踪SplitChunksPlugin的过程时,您想查看模块在哪个地方,模块中的内容,所需的块等等等等等等。


所以你使用
const data = { module, ...chunks };
fs.writeFileSync('report', JSON.stringify(data))

这将发出错误

“将圆形结构转换为JSON”

多数民众赞成在BC模块的结构上具有嵌套和交叉引用。

json.stringify可以接受3个参数,第一个是数据2是替换器,而3D是用于格式化内容的间隔者。

因此,有避免错误的功能,该功能应用作替换器。

const getCircularReplacer = () => {
  const seen = new WeakSet();
  return (key, value) => {
    if (typeof value === "object" && value !== null) {
      if (seen.has(value)) {
        return;
      }
      seen.add(value);
    }
    return value;
  };
};

这将起作用:
fs.writeFileSync('report', JSON.stringify(data, getCircularReplacer(), 2))