通常,在微调构建过程时,您需要输出大量数据。
常见的情况是当您在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))