编程语言
首页 > 编程语言> > Prettier 一个固执的代码格式化程序

Prettier 一个固执的代码格式化程序

作者:互联网

文章目录


Prettier

Prettier 是一个“有态度”的代码格式化工具,它支持:JavaScript (包括实验性功能)、JSX、Angular、Vue、Flow、TypeScript、CSS、Less 和 SCSS、HTML、JSON、GraphQL、Markdown,包括 GFM 和 MDX、YAML

它移除了所有原始样式* 并确保输出的所有代码都符合一致的样式。

一、安装

npm 或 yarn

# npm
$ npm install --save-dev --save-exact prettier

# yarn
$ yarn add --dev --exact prettier

在目录结构需要新建的文件
.prettierrc.json - 定义 prettier 相关配置文件。
.prettierignore - 设置不进行 prettier 格式化的文件。

二、配置文件

Prettier uses cosmiconfig for configuration file support. This means you can configure Prettier via (in order of precedence):

json:

{
  "trailingComma": "es5",
  "tabWidth": 4,
  "semi": false,
  "singleQuote": true
}

javascript:

// prettier.config.js or .prettierrc.js
module.exports = {
  trailingComma: "es5",
  tabWidth: 4,
  semi: false,
  singleQuote: true,
}

yaml:

# .prettierrc or .prettierrc.yaml
trailingComma: "es5"
tabWidth: 4
semi: false
singleQuote: true

toml:

# .prettierrc.toml
trailingComma = "es5"
tabWidth = 4
semi = false
singleQuote = true

三、配置参数

1. Print Width

指定行字符串显示长度。

DefaultCLI OverrideAPI Override
80–print-width <int>printWidth: <int>

2. Tab Width

指定每个缩进级别的空格数。

DefaultCLI OverrideAPI Override
2–tab-width <int>tabWidth: <int>

3. Tabs

带有标签而不是空格的缩进线。

DefaultCLI OverrideAPI Override
false–use-tabsuseTabs: <bool>

4. Semicolons

在语句的末尾打印分号。

可选项:

DefaultCLI OverrideAPI Override
true–no-semisemi: <bool>

5. Quotes

使用单引号而不是双引号。

笔记:

DefaultCLI OverrideAPI Override
false–single-quotesingleQuote: <bool>

6. Quote Props

引用对象中属性时更改。

可选项:

DefaultCLI OverrideAPI Override
“as-needed”–quote-props <as-needed/consistent/preserve>quoteProps: “<as-needed/consistent/preserve>”

7. JSX Quotes

使用单引号而不是 JSX 中的双引号。

DefaultCLI OverrideAPI Override
false–jsx-single-quotejsxSingleQuote: <bool>

8. Trailing Commas

在可能的多线逗号分离的语法结构中打印尾随逗号。 (例如单行阵列,例如,从未获得尾随逗号。)

可选项:
“es5” - 在 ES5(对象,阵列等)有效的尾随逗号。 在键盘中的类型参数中没有尾随逗号。
“none” - 没有尾随逗号。
“all” - 尽可能尾随逗号(包括函数参数和呼叫)。 要运行,格式化的 JavaScript 代码需要一种支持 ES2017(Node.js 8+或现代浏览器)或下级编译的引擎。 这也使得在 CypeScript 中的类型参数中可以实现尾随逗号(自 2018 年 1 月发布版本 2.7 以来支持。

DefaultCLI OverrideAPI Override
“es5”–trailing-comma <es5/none/all>trailingComma: “<es5/none/all>”

9. Bracket Spacing

在对象文字中的括号之间打印空格。

可选项:

DefaultCLI OverrideAPI Override
true–no-bracket-spacingbracketSpacing: <bool>

10. JSX Brackets

在最后一行末尾的多行 JSX 元素中放置一个多行 JSX 元素,而不是单行在下一行(不适用于自闭元素)。

可选项:

DefaultCLI OverrideAPI Override
false–jsx-bracket-same-linejsxBracketSameLine: <bool>

11. Arrow Function Parentheses

在唯一箭头函数参数周围包含括号。

DefaultCLI OverrideAPI Override
“always”–arrow-parens <always/avoid>arrowParens: “<always/avoid>”

乍一看,由于视觉噪音较小,避免括号可能看起来更好的选择。 但是,当 prettier 删除括号时,它变得越难添加类型注释,额外的参数或默认值以及制定其他更改。 一致使用括号在编辑真实代码库时提供更好的开发人员体验,这证明了选项的默认值。

12. Range

格式化文件的段。

这两个选项可用于格式化启动和结束在给定的字符偏移(分别包含和独占)的代码。 该范围将扩展:

DefaultCLI OverrideAPI Override
0–range-start <int>rangeStart: <int>
Infinity–range-end <int>rangeEnd: <int>

13. Parser

指定要使用的解析器。

Babel 和 Flow 解析器都支持相同的 JavaScript 功能(包括流型注释)。 它们可能在某些边缘案例中有所不同,因此如果您遇到其中一个,您可以尝试尝试流量而不是 Babel。 几乎相同适用于打字和 Babel-TS。 BABEL-TS 可能支持类型签名尚未支持的 JavaScript 功能(提议),但是当涉及到无效的代码和比 TypeScript 解析器的战斗测试较少时,它不太宽松。

可选项:

也支持自定义解析器。 首先在 v1.5.0 中提供

DefaultCLI OverrideAPI Override
None --parser –parser ./my-parser parser: “<string>”parser: require("./my-parser")

14. File Path

指定要用于推断要使用的解析器的文件名。

例如,以下将使用 CSS 解析器:

cat foo | prettier --stdin-filepath foo.css

此选项仅在 CLI 和 API 中有用。 在配置文件中使用它没有意义。

DefaultCLI OverrideAPI Override
None–stdin-filepath <string>filepath: “<string>”

15. Require Pragma

prettier 可以仅限于文件顶部的仅格式化包含特殊注释的文件,该文件称为 Pragma。 当逐渐过渡到 prettier 的大型未格式化的码布时,这非常有用。

当提供 - 重新查询 - Pragma 时,将格式化以下内容作为其第一个注释的文件:

/**
 * @prettier
 */

or

/**
 * @format
 */
DefaultCLI OverrideAPI Override
false–require-pragmarequirePragma: <bool>

16. Insert Pragma

prettier 可以在文件顶部插入特殊的@Format 标记,指定文件已格式化文件。 与 - 重新核心 - Pragma 选项一起使用时,这会很好。 如果文件顶部已有 DocBlock,则此选项将使用@Format 标记添加换行符。

DefaultCLI OverrideAPI Override
false–insert-pragmainsertPragma: <bool>

17. Prose Wrap

默认情况下,更 prettier 的将包装 Markdown 文本,因为某些服务使用 Linebreak 敏感渲染器,例如, github 评论和 bitbucket。 在某些情况下,您可能希望依赖 Editor / Viewer 软包装,因此此选项允许您选择“永远不会”。

可选项:

DefaultCLI OverrideAPI Override
“preserve”–prose-wrap <always/never/preserve>proseWrap: “<always/never/preserve>”

18. HTML Whitespace Sensitivity

为 HTML,Vue,Angular 和 Suppherbars 指定全局空白的灵敏度。 请参阅空白敏感格式以获取更多信息。

可选项:

DefaultCLI OverrideAPI Override
“css”–html-whitespace-sensitivity <css/strict/ignore>htmlWhitespaceSensitivity: “<css/strict/ignore>”

19. Vue files script and style tags indentation

是否要在 VUE 文件中缩进 <script> 和 <style> 标记中的代码。 有些人(如 Vue 的创建者)不归于挽救缩进级别,但这可能会在编辑器中打破代码折叠。

DefaultCLI OverrideAPI Override
false–vue-indent-script-and-stylevueIndentScriptAndStyle: <bool>

20. End of Line

所有操作系统中的所有现代文本编辑器都能够在使用\ n(lf)时正确显示线路结束。 但是,旧版本的 Windows for Windows 将在视觉上挤压这样的线,因为它们只能处理\ r \ n(crlf)。

可选项:

DefaultCLI OverrideAPI Override
“lf”–end-of-line <lf/crlf/cr/auto>endOfLine: “<lf/crlf/cr/auto>”

21. Embedded Language Formatting

控制是否 prettier 格式的引用代码嵌入在文件中。

可选项:

DefaultCLI OverrideAPI Override
“auto”–embedded-language-formatting=offembeddedLanguageFormatting: “off”

总结

通过 npm 包管理工具或开发工具,均能够安装 prettier 插件。在项目文件中,需要创建一个名为 .prettier 的文件用来定义格式,通过对配置参数的设定,就能够快速地实现格式化统一了。




最后,如果您有更好的方法,欢迎在留言区中分享;或者实际操作中遇到什么问题均可留言或者私信我,感谢您的观看!
官方文档:Prettier-docs

标签:available,OverrideAPI,格式化,prettier,固执,parser,DefaultCLI,Prettier,First
来源: https://blog.csdn.net/weixin_44808483/article/details/118113753