跳到主要内容

Prettier 是什么?

Prettier 是一个“有态度”的代码格式化工具,它支持:

它移除了所有原始样式* 并确保输出的所有代码都符合一致的样式。 (请参阅此 博客文章

Prettier 会把代码行的长度也纳入考量,然后把你的代码重新打印出来。

例如,对于以下代码:

foo(arg1, arg2, arg3, arg4);

这段代码一行正合适,因此格式化后代码将保持原样。但是,我们都遇到过这种情况:

foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());

这段代码太长了,我们之前调用方法的格式就不适用了。Prettier 会做详尽的工作重新输出这段代码,像下面的代码一样:

foo(
reallyLongArg(),
omgSoManyParameters(),
IShouldRefactorThis(),
isThereSeriouslyAnotherOne(),
);

Prettier 在整个代码库中强制使用一致的代码样式(代码样式不会影响 AST,即,抽象语法树),因为它丢弃了原始样式* ,并将代码进行解析,并按照自己的规则重新打印出已解析的 AST,并且而该规则将行的最大长度也考虑在内,必要时会将代码折行。

如果您想了解更多信息,下面的两个会议演讲是不错的介绍:

A Prettier Printer by James Long on React Conf 2017

JavaScript Code Formatting by Christopher Chedeau on React London 2017

脚注

* 其实,某些原始样式如果有用的话会被保留的,参见 空行多行对象