【问题标题】:nodeca/js-yaml appending >- on long stringsnodeca/js-yaml 在长字符串上附加 >-
【发布时间】:2019-08-14 16:26:40
【问题描述】:

使用js-yaml npm 包,我正在尝试操作.yaml 文件。 虽然能够成功操作,但我在保存长字符串时遇到了问题。

实际:

  abvs_adas: >-
    c2Rhc2Rhc2Rhc2Rhc2RwaW9qbGtkZ2hqbGtzZGhmZ2psaGFzamhhandiZm0sYXNibmYsbWFuc2Y==`

预期

  abvs_adas: c2Rhc2Rhc2Rhc2Rhc2RwaW9qbGtkZ2hqbGtzZGhmZ2psaGFzamhhandiZm0sYXNibmYsbWFuc2Y==`

当设置{lineWidth: 200} 时,它变成了预期,但是当我得到一个包含6000 个字符的base64 字符串时,它再次附加了>-(我设置了增加{lineWidth: 20000}

我怎么能不附加这个>-

我正在使用 nodeyaml 包,执行:nodeyaml.write('bla.yaml', doc, {lineWidth: 200}, function (err) { .. } 内部执行:

 await fs.writeFile(filename, yaml.dump(object, opts), {encoding, flag})

在哪里

opts = {lineWidth: 20000}

object = doc

我用过js-yaml,但如果你知道一个替代方案:

  1. 加载一个.yaml,其中包含一个非常大的字符串
  2. 操纵它
  3. 保存。

太棒了。

【问题讨论】:

    标签: javascript node.js npm yaml


    【解决方案1】:

    {lineWidth: -1} 可以解决问题。


    解释;在js-yaml 包内有一个名为:chooseScalarStyle 的函数,它设置样式,选择的样式是:STYLE_FOLDED,稍后附加>-\n

    在设置{lineWidth: -1} 时,它会生成样式:STYLE_PLAIN,稍后会按原样返回字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多