如何强制 jscodeshift/recast 在对象表达式中保留尾随逗号?
How to force jscodeshift/recast to keep trailing commas in object expressions?
我一直在编写一些转换来帮助我重构代码库。我所做的基本上是向某些对象表达式添加一个新的 属性 。为什么 jscodeshift/recast
从这些对象中删除尾随逗号?我怎样才能防止这种情况发生?
Recast 有 trailing comma option:
// If you want to print trailing commas in object literals,
// array expressions, functions calls and function definitions pass true
// for this option.
trailingComma: false,
您可以将重铸打印选项传递给 jscodeshift 的 toSource
方法 as explained here:
return x.toSource({trailingComma: true});
既然下面评论中的问题已经合并,您也可以这样使用它以获得更细粒度:
trailingComma: {
objects: true,
arrays: true,
functions: false,
}
Why does jscodeshift/recast remove trailing commas from those objects?
重铸无法移除不存在的东西。 Recast 对代码的 AST 进行操作。 AST 中不存在用于分隔属性的逗号等标点符号。
我一直在编写一些转换来帮助我重构代码库。我所做的基本上是向某些对象表达式添加一个新的 属性 。为什么 jscodeshift/recast
从这些对象中删除尾随逗号?我怎样才能防止这种情况发生?
Recast 有 trailing comma option:
// If you want to print trailing commas in object literals,
// array expressions, functions calls and function definitions pass true
// for this option.
trailingComma: false,
您可以将重铸打印选项传递给 jscodeshift 的 toSource
方法 as explained here:
return x.toSource({trailingComma: true});
既然下面评论中的问题已经合并,您也可以这样使用它以获得更细粒度:
trailingComma: {
objects: true,
arrays: true,
functions: false,
}
Why does jscodeshift/recast remove trailing commas from those objects?
重铸无法移除不存在的东西。 Recast 对代码的 AST 进行操作。 AST 中不存在用于分隔属性的逗号等标点符号。