精通 Prettier:进阶配置与最佳实践

简介: 【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够帮助开发者保持代码风格的一致性,减少因代码风格争议而产生的争论。本文将深入探讨如何根据项目需求进行详细的配置选项调整,并分享一些使用 Prettier 的最佳实践,包括如何通过 Git 钩子自动化代码格式化过程以及如何解决常见的配置冲突问题。

Prettier 是一款流行的代码格式化工具,它能够帮助开发者保持代码风格的一致性,减少因代码风格争议而产生的争论。本文将深入探讨如何根据项目需求进行详细的配置选项调整,并分享一些使用 Prettier 的最佳实践,包括如何通过 Git 钩子自动化代码格式化过程以及如何解决常见的配置冲突问题。
1111.png

Prettier 进阶配置

Prettier 提供了许多可配置的选项,允许开发者根据自己的项目需求来定制格式化规则。下面是一些常见的配置选项及其用途:

配置文件

Prettier 支持多种配置文件格式,如 .prettierrc.prettierrc.json.prettierrc.yaml 或者 package.json 中的 prettier 字段。为了便于维护,推荐使用 JSON 文件。

示例配置文件

{
   
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": true,
  "jsxSingleQuote": true,
  "trailingComma": "all",
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
  "arrowParens": "always",
  "endOfLine": "lf",
  "parser": "typescript",
  "printWidth": 100,
  "proseWrap": "preserve"
}
  • tabWidth: 设置制表符的宽度,默认为 2。
  • useTabs: 控制是否使用 Tab 键来代替空格,默认为 false
  • semi: 是否在语句末尾使用分号,默认为 true
  • singleQuote: 控制字符串是否使用单引号,默认为 true
  • jsxSingleQuote: JSX 属性值是否使用单引号,默认为 true
  • trailingComma: 控制是否在最后一个元素后使用尾随逗号,默认为 "es5"
  • bracketSpacing: 控制对象字面量的括号内是否有空格,默认为 true
  • jsxBracketSameLine: 控制 JSX 属性是否在同一行内关闭,默认为 false
  • arrowParens: 控制箭头函数参数的括号使用情况,默认为 "avoid"
  • endOfLine: 文件的换行符类型,默认为 "lf"
  • parser: 指定使用的解析器,默认为 "babylon"
  • printWidth: 每行的最大字符数,默认为 80。
  • proseWrap: 控制 prose 文本的换行,默认为 "preserve"

解决配置冲突

在团队协作中,可能会遇到不同工具之间的配置冲突。例如,ESLint 和 Prettier 可能会对同一份代码有不同的格式要求。为了避免这种情况,可以使用 eslint-config-prettierprettier-eslint 等插件来统一 ESLint 和 Prettier 的规则。

示例:整合 ESLint 和 Prettier

.eslintrc.js 文件中添加 prettier 插件:

module.exports = {
   
  plugins: ['prettier'],
  extends: ['plugin:prettier/recommended'],
  rules: {
   
    'prettier/prettier': 'error',
    // 可以在这里添加其他规则
  }
};

使用 Git 钩子自动化代码格式化

在提交代码之前自动运行 Prettier 是一种确保代码格式始终符合约定的好方法。通过 Git 钩子,可以在每次提交之前自动格式化修改过的文件。

设置 Git 钩子

创建 husky 配置文件

首先,安装 huskylint-staged

npm install husky lint-staged --save-dev

接着,在仓库根目录下创建一个 husky 文件夹,并在其中创建 pre-commit 文件:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx lint-staged

配置 lint-staged

在仓库根目录下创建 .lintstagedrc.js 文件:

module.exports = {
   
  '*.{js,jsx,ts,tsx}': files => [
    `npx prettier --write ${
     files.join(' ')}`,
    `npx eslint --fix ${
     files.join(' ')}`,
  ],
};

这样每当有代码提交时,Prettier 和 ESLint 将自动运行。

最佳实践

维护一致的代码风格

确保团队中的每个人都使用相同的 Prettier 配置,这样可以避免代码风格上的差异导致的问题。

定期更新 Prettier

随着新版本的发布,Prettier 不断引入新的功能和改进。定期更新可以确保使用的是最新版本,并享受其带来的好处。

使用 Prettier CLI

Prettier 提供了一个命令行工具,可以直接在终端中使用。例如,可以使用 npx prettier --write . 来格式化整个项目的文件。

结论

通过合理的配置和最佳实践,Prettier 可以成为提高代码质量和团队生产力的强大工具。本文介绍了如何根据项目需求调整 Prettier 的配置选项,并通过 Git 钩子自动化代码格式化过程。此外,还分享了如何解决配置冲突问题以及一些实用的建议。掌握这些技巧后,你可以更加自信地使用 Prettier 来管理你的代码样式。

目录
相关文章
|
24天前
|
资源调度 JavaScript 前端开发
Prettier 入门:让代码整洁如一
【10月更文挑战第18天】在软件开发过程中,代码的可读性对于团队协作和个人工作效率都至关重要。良好的代码格式不仅能提高代码的可读性,还能减少因风格差异引起的代码审查时间。Prettier 是一款自动代码格式化工具,能够帮助开发者快速统一代码风格,使得团队成员编写的代码具有一致性。本文将介绍 Prettier 的基本用法、安装方式以及如何在常见编辑器中设置和使用 Prettier。
47 4
|
1月前
|
SQL 前端开发 JavaScript
Nest.js 实战 (十五):前后端分离项目部署的最佳实践
这篇文章介绍了如何使用现代前端框架Vue3和后端Node.js框架Nest.js实现的前后端分离架构的应用,并将其部署到生产环境。文章涵盖了准备阶段,包括云服务器的设置、1Panel面板的安装、数据库的安装、域名的实名认证和备案、SSL证书的申请。在部署Node服务环节,包括了Node.js环境的创建、数据库的配置、用户名和密码的设置、网站信息的填写、静态网站的部署、反向代理的配置以及可能遇到的常见问题。最后,作者总结了部署经验,并希望对读者有所帮助。
127 11
|
3月前
|
JavaScript 前端开发 开发者
【颠覆你的前端世界!】VSCode + ESLint + Prettier:一键拯救Vue代码于水深火热之中,打造极致编程体验之旅!
【8月更文挑战第9天】随着前端技术的发展,保持代码规范一致至关重要。本文介绍如何在VSCode中利用ESLint和Prettier检查并格式化Vue.js代码。ESLint检测代码错误,Prettier保证风格统一。首先需安装VSCode插件及Node.js包,然后配置ESLint和Prettier选项。在VSCode设置中启用保存时自动修复与格式化功能。配置完成后,VSCode将自动应用规则,提升编码效率和代码质量。
489 1
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的C语言在线评测系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的C语言在线评测系统附带文章源码部署视频讲解等
47 0
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js的卓越导师双选系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的卓越导师双选系统附带文章和源代码设计说明文档ppt
64 8
|
6月前
|
JavaScript 算法 开发者
代码风格:遵循Vue官方的风格指南和最佳实践
【4月更文挑战第23天】本文强调了遵循Vue官方风格指南和最佳实践对确保项目可读性、可维护性和可扩展性的重要性。关键点包括:1) 了解并遵循Vue风格指南,基于核心团队经验和社区实践;2) 保持组件结构一致性,简化模板逻辑,使用解构赋值;3) 遵循命名和注释规范,使用描述性命名和清晰注释;4) 编写可读性强的代码,利用计算属性和辅助方法;5) 优化性能,如避免不必要的渲染,使用v-if/v-show,和异步更新队列。遵循这些实践能提升代码质量和团队协作效率。
94 1
|
6月前
|
JavaScript 前端开发
koa开发实践1:基于 gulp 搭建 typescript 自动构建环境
koa开发实践1:基于 gulp 搭建 typescript 自动构建环境
178 0
|
6月前
|
资源调度 JavaScript 前端开发
深度剖析 Vite 配置
深度剖析 Vite 配置
238 1
|
API 开发者
🚀两个简单的自定义插件,探究Vite的插件机制
🚀两个简单的自定义插件,探究Vite的插件机制
|
存储 缓存 资源调度
TypeScript Monorepo 最佳实践
TypeScript Monorepo 最佳实践
405 1