Prettier:让代码优雅起来的全能代码格式化工具

一、Prettier介绍

Prettier是一个快速、强制一致的JavaScript/TypeScript代码格式化工具,不仅仅支持JavaScript和TypeScript,还支持HTML、CSS、JSON、Markdown等多种语言。

相较于其他代码格式化工具,Prettier有以下几个特点:

1、支持自动适应ES6+语法,比如箭头函数、模板字面量、可选链式调用等。

2、强制性格式化,相同的代码在不同的开发者环境下,格式都是一致的,避免了团队代码风格不统一的问题。

3、Prettier对于代码格式的优化和排版,比其他类似工具更优秀,让代码看起来更美观、简洁。

二、在项目中使用Prettier

1、全局安装Prettier:


npm install prettier -g

2、在项目中安装Prettier:


npm install prettier --dev --save-exact

安装完成后,可以使用Prettier的命令行工具格式化代码,如:


prettier --write src/**/*.js

其中–write的意思是将格式化结果覆盖到原文件中,src/**/*.js是格式化所有src目录下的js文件。也可以使用–check命令检查是否符合规范,如:


prettier --check src/**/*.js

3、在编辑器中使用Prettier:建议在编辑器中安装Prettier插件,当保存文件时会自动格式化代码。

在VS Code中安装Prettier插件的方法:

1、按Ctrl+Shift+X打开扩展搜索框,搜索Prettier安装即可。

2、在.vscode/settings.json文件中添加以下配置(可选):


{
    "editor.formatOnSave": true, //每次保存代码自动格式化
    "editor.defaultFormatter": "esbenp.prettier-vscode" //指定Prettier为默认代码格式化工具
}

三、Prettier的配置项

Prettier提供了很多配置项,可以根据自己的需要进行定制。例如:

1、tabWidth:指定缩进的空格数,默认为2。


{
    "tabWidth": 4
}

2、semi:控制是否在语句末尾加上分号,默认为true。


{
    "semi": false
}

3、singleQuote:控制是否使用单引号代替双引号。


{
    "singleQuote": true
}

使用方法:在项目中新建一个.prettierrc.json文件,并添加需要的配置项。

四、与ESLint集成

ESLint是一个代码检查工具,常用于检查代码质量和风格问题。

将Prettier与ESLint结合使用可以实现代码格式化与代码质量检查的结合。

步骤如下:

1、安装ESLint的prettier插件:


npm install eslint-plugin-prettier --save-dev

2、在ESLint配置中添加prettier插件,并进行相关配置:


{
  "extends": [
    "eslint:recommended",
    "plugin:prettier/recommended" //添加prettier插件
  ],
  "plugins": [
    "prettier"
  ],
  "rules": {
    "prettier/prettier": "error", //规则配置
    //...
  }
}

3、根据自己的需求添加其他需要的规则。

五、与Git结合使用

将Prettier与Git结合使用可以实现在代码提交前自动格式化代码,并确保代码仓库中所有的代码都符合同一种风格。

方法如下:

1、使用.git/hooks/pre-commit文件,在代码提交前自动执行Prettier检测和格式化:


#!/bin/sh

echo -e "\\033[1;33mRunning Prettier...\\033[0m"
if ! git diff --diff-filter=d --cached --exit-code --quiet -- '*.js' '*.jsx' '*.ts' '*.tsx' '*.html' '*.css'; then
  echo -e "\\033[1;31mThis commit will not be executed because there are unformatted file(s)\\033[0m"
  exit 1
fi
prettier --list-different '**/*.+(js|jsx|json|less|css|ts|tsx|md|graphql|yml|yaml)'
if [ $? -ne 0 ]; then
  echo -e "\\033[1;31mThis commit will not be executed because there are unformatted file(s)\\033[0m"
  exit 1
fi
echo -e "\\033[1;32mPrettier has completed !\\033[0m"
exit 0

2、安装Husky,并在.git/hooks/pre-commit文件中添加precommit命令:


npm install husky --save-dev
npx husky add .husky/pre-commit "bash .git/hooks/pre-commit"

3、在项目中添加Prettier配置文件,如上文所述。

六、小结

Prettier是一款优秀的代码格式化工具,能够让我们在开发中省去代码风格的细节问题。通过与编辑器、ESLint、Git等工具的结合,可以进一步提高代码质量和开发效率。在团队协作中,可以使用Prettier统一代码风格,规避风格不一致的问题。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/294188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-26 13:16
下一篇 2024-12-26 13:16

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29
  • 北化教务管理系统介绍及开发代码示例

    本文将从多个方面对北化教务管理系统进行介绍及开发代码示例,帮助开发者更好地理解和应用该系统。 一、项目介绍 北化教务管理系统是一款针对高校学生和教职工的综合信息管理系统。系统实现的…

    编程 2025-04-29

发表回复

登录后才能评论