gpt4 book ai didi

javascript - 在 node.js 中需要带有注释的 JSON

转载 作者:行者123 更新时间:2023-12-05 02:07:14 37 4
gpt4 key购买 nike

如果您使用 typescript ,您可以初始化一个默认的 tsconfig.json,并且该 json 将在其中包含 javascript//和/* */注释。我遇到过 ts-jest 的情况,我需要我的 tsconfig 并解析它,但 jest 没有解析它,因为 json 不允许注释。 see this我不确定 typescript 是如何处理它的,但它似乎偏离了规则。

// this fails if tsconfig has comments
const tsconfig = require('./tsconfig')

我想保留评论,因为它们对理解和维护我的 tsconfig.json 非常有帮助,我希望我的配置能够避免重复代码并使事情更加动态。

有没有办法使用 nodejs 来要求带有注释的 json 文件?

最佳答案

json5可以做到这一点。安装 JSON5 然后:

const JSON5 = require('json5');
const tsconfig = JSON5.parse(jsontxt);

请注意,您可以自行删除评论,但存在一些缺陷,因此不推荐这样做。你应该寻找:

  • 字符串可能包含看起来像注释的序列,但它们不是。
  • 评论可能包含看起来像字符串开头的序列,但它们不是。
  • 字符串可能包含不标记字符串结尾的",例如"foo\"bar"。它与 "foo\\" 更容易混淆,其中第二个 "确实结束了字符串。
  • // 注释可以包含 /*,但这不会启动多行注释。
  • 多行注释中的 // 不会开始单行注释,因此删除 /*//*/"hi" 中的注释会导致“嗨”
  • \ 是否将单行继续到下一行? \*/ 是结束多行注释,还是 \ 使 * 行为不同? (JavaScript 均不支持)。
  • 是否支持多行字符串(它们在 JavaScript 中)?他们是如何申报/处理的。

关于javascript - 在 node.js 中需要带有注释的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61996234/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com