我一直在编写一些转换来帮助我重构代码库。我所做的基本上是向某些对象表达式添加一个新属性。为什么jscodeshift/recast
要从这些对象中删除尾随逗号?我怎样才能防止这种情况?
问问题
599 次
1 回答
4
Recast 有一个尾随逗号选项:
// 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 的 totoSource
方法,如下所述:
return x.toSource({trailingComma: true});
现在下面评论中的问题已被合并,您也可以通过这种方式使用它以获得更多粒度:
trailingComma: {
objects: true,
arrays: true,
functions: false,
}
为什么 jscodeshift/recast 从这些对象中删除尾随逗号?
重铸不能删除不存在的东西。Recast 对代码的AST进行操作。AST 中不存在用于分隔属性的逗号等标点符号。
于 2016-10-26T16:32:24.517 回答