首页 web前端 js教程 使用 Prettier Like a Pro 格式化您的代码

使用 Prettier Like a Pro 格式化您的代码

Jan 08, 2025 pm 02:31 PM

Format Your Code Using Prettier Like a Pro

不要像这个人一样——不要成为一个笨蛋。

为什么需要格式化代码

格式化有助于构建您编写的代码行,使其更易于阅读和理解。当与多个开发人员一起开发代码库时,这一点至关重要,所有开发人员都有自己的风格和对代码结构的偏好。拥有统一格式的代码库有助于防止合并时的麻烦,并创建您和您的团队可以在此基础上构建的标准。

有多种方法可以为您自己和您的团队设置格式模板。在本文中,我们将探讨更流行的选项之一:Prettier。

根据 State of JS 2021 调查,83% 的受访者经常使用 Prettier 作为他们选择的格式化程序,比上一年的调查增加了 13%。许多著名的团队(例如 Facebook、Webflow、Jest、Dropbox、Spotify 和 PayPal 的团队)都使用 Prettier 来确保其代码库中的格式一致。

Prettier 可以通过多种方式配置和运行。在此示例中,我将演示如何使用 Git 挂钩设置 Prettier,以在 VS Code 中实现自动化。更多示例和配置,请访问 Prettier 的文档。


开始之前

虽然不是必需的,但了解您将配置的选项及其用途很有帮助。您需要创建两个文件并将它们放置在项目的根级别。请记住,这些格式选项是特定于项目的,因此您需要为每个新项目重复此过程。这些文件将包含您可以选择的选项,您可以修改或删除不适合您项目需求的选项。


.prettierrc

此文件位于项目的根级别,定义 Prettier 的基本格式规则。它使用 JSON 结构,可以根据您团队的标准进行定制。这是一个例子:

Format Your Code Using Prettier Like a Pro


.editorconfig

即使在 Prettier 运行之前,该文件也可确保编辑器设置的一致性。它还涵盖了 .prettierrc 没有的选项。这是一个例子:

Format Your Code Using Prettier Like a Pro


设置工作流程

为了方便使用,两个文件都可以复制到文末。创建并配置 .prettierrc 和 .editorconfig 文件后,您就可以继续。安装这三个 npm 包以简化格式化过程:

npm install --save-dev prettier lint-staged husky

然后初始化Husky

npx 哈士奇初始化

这些步骤可完成以下任务:

  • 安装 Prettier 进行格式化。
  • 安装 lint-staged 以在提交之前仅格式化暂存文件。
  • 安装 Husky 以设置 Git 挂钩以实现自动化。
  • 初始化 Husky,这会创建必要的依赖项和预提交文件。

配置新文件

另外两个文件需要配置:pre-commit 和 .lintstagedrc

预提交

该文件由 Husky 自动创建,用于指导自动化过程。它位于初始化期间创建的 Husky 文件夹内。配置如下图:

Format Your Code Using Prettier Like a Pro

.lintstagedrc

在根项目文件夹中创建此文件(没有类似于 .editorconfig 和 .prettierrc 的扩展名)。它通过 Git hook 缩小了 Prettier 格式文件的范围。以下是一个示例,但您可以根据项目的文件类型进行调整:

Format Your Code Using Prettier Like a Pro


测试工作流程

所有四个文件就位(.prettierrc、.editorconfig、.lintstagedrc 和预提交)后,您就可以测试工作流程。

  1. 对 .js 文件进行简单的格式更改(例如,添加不必要的空格或缩进)。
  2. 暂存您的更改: git添加-A
  3. 提交测试消息 git commit -m“测试格式化工作流程”

如果一切设置正确,您的终端应该显示一条成功消息,并且格式更改将自动应用。

Format Your Code Using Prettier Like a Pro


就是这样!

您现在有了一种简单而有效的方法来利用 Prettier 和 git hooks 来自动格式化代码。

Format Your Code Using Prettier Like a Pro

我很想听听你的想法!如果这有帮助或者您遇到任何问题,请在评论中告诉我 - 我随时为您提供帮助!


复制粘贴文件示例

.prettierrc

{
  "arrowParens": "always",
  "bracketSameLine": false,
  "bracketSpacing": true,
  "embeddedLanguageFormatting": "auto",
  "endOfLine": "lf",
  "htmlWhitespaceSensitivity": "css",
  "insertPragma": false,
  "jsxSingleQuote": false,
  "printWidth": 80,
  "proseWrap": "preserve",
  "quoteProps": "as-needed",
  "requirePragma": false,
  "semi": true,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "es5",
  "useTabs": false,
  "vueIndentScriptAndStyle": false
}
登录后复制

.editorconfig

# Top-most EditorConfig file
root = true

# Global settings
[*]
indent_style = space
indent_size = 2
tab_width = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# Overrides
[*.md]
trim_trailing_whitespace = false
max_line_length = off

[*.yml]
indent_style = space
indent_size = 2

[*.ts]
indent_style = space
indent_size = 4

[Makefile]
indent_style = tab

[*.html]
indent_size = 2

[*.json]
indent_size = 2

登录后复制

以上是使用 Prettier Like a Pro 格式化您的代码的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1277
29
C# 教程
1256
24
Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在行动中:现实世界中的示例和项目 JavaScript在行动中:现实世界中的示例和项目 Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

了解JavaScript引擎:实施详细信息 了解JavaScript引擎:实施详细信息 Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:社区,图书馆和资源 Python vs. JavaScript:社区,图书馆和资源 Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python vs. JavaScript:开发环境和工具 Python vs. JavaScript:开发环境和工具 Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C/C在JavaScript口译员和编译器中的作用 C/C在JavaScript口译员和编译器中的作用 Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

从网站到应用程序:JavaScript的不同应用 从网站到应用程序:JavaScript的不同应用 Apr 22, 2025 am 12:02 AM

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

See all articles