Prettier-Code Formater代码格式化插件使用教程

今天为各位学习前端的小伙伴们推荐一个 Vscode 中好用的代码格式化插件: Prettier

并在该文章中记录它的用法


插件的安装

  1. 通过 VScode 的扩展市场安装

  2. npm 安装 npm i -D prettier


插件的使用

插件的使用主要有两种方式:

  1. 配置VScode代码格式化后, 结合VScode快捷键使用
  2. npm安装后, 输入命令(CLI)方式使用

方式一: 配置VScode代码格式化后, 结合VScode快捷键使用

在用方法一安装后, 需要在VScode的设置中设置默认的代码格式化器, 设置方法有两种

  1. 方法1如图所示:

  2. 方法2在settings.json中添加如下配置项:

    "editor.defaultFormatter": "esbenp.prettier-vscode",

然后就能用VScode中格式化代码的快捷键(默认: Ctrl + Shift + P)来格式化代码了


方式二: CLI中使用命令行的方式格式化代码

这种方法适合在前端项目中配合.prettierrc使用, 保证项目中所有人格式化的代码风格都一致

CLI使用方式: npx prettier <options> [filename/dict]

常用的一些参数:

  1. --write 或 -w 对代码进行格式化
  2. --check 或 -c 检查该文件或该目录下的文件是否已经被Prettier格式化过了, 结果会在控制台中告知
  3. --config 指定格式化规则文件的路径, 适用于 .prettierrc 不在根目录的场景
  4. --no-config 不寻找配置文件, 使用默认设置
  5. --find-config-path 输出当前文件所应用的格式化规则文件(例如: .prettierrc)的路径

.prettierignore文件

该文件的作用与.gitignore的作用一致, 用于忽略特定文件, 并且语法也一样

如果项目中有.gitignore文件, 可以在其中配置而不需要.prettierignore文件, 如果两文件同时存在则涉及优先级问题


.prettierignore 与 .gitignore 的优先级

  1. 即使两个文件同时存在, 里面的配置也不会同时生效(不会mix在一起)
  2. 只要.prettierignore文件存在, 一切都以.prettierignore文件为准, 而不管其他

需要不格式化某一部分代码

语法跟eslint中忽略某一部分的语法检查一致: 使用当前语言的注释语法, 内容是prettier-ignore, 以HTML、CSS、JS为例

<!-- prettier-ignore -->
<p>这个元素节点会跳过代码格式化</p>
/* prettier-ignore */
p {
/* 跳过代码格式化 */
color: red;
}
// prettier-ignore
()=>{console.log("test")} /* 跳过代码格式化 */

.prettierrc配置文件

这个文件是该格式化插件的重要文件, 格式化的规则都可在该配置文件中定义


格式化规则配置的优先级

  1. package.json 中的 prettier 配置项
  2. .prettierrc配置文件
  3. .prettierrc.json文件, .prettierrc.yml文件, .prettierrc.yaml文件, .prettierrc.json5文件
  4. 使用commonJS模块化暴露的 .prettierrc.js文件, .prettierrc.cjs文件, prettier.config.js文件, prettier.config.cjs文件
  5. .prettierrc.toml文件

注意: 优先级高的会覆盖优先级低的, 而不是混合(mixin)后生效


常用的代码格式化配置(前端)

详细配置请在官网查看, 这里只列出常用的

  1. printWidth: 一行代码能显示的长度, 默认值: 80

  2. tabWidth: 标签的缩进, 默认值: 2

  3. useTabs: 用制表符还是空格进行缩进, 默认值: false(用空格)

  4. semi: 是否在末尾添加分号, 默认值: true 注意: 对于需要添加分号的场景, 即使是false也会自动添加上, 所以可以放心使用

  5. singleQuote: 是否使用单引号代替双引号, 如果引号的数量超过另一个引号, 则较少使用的引号将用于格式化字符串, 默认值: false

  6. quoteProps: 对象中的属性名是否添加引号

    1. as-needed(默认值): 只有当需要的时候才添加, 例如: 属性名为"hello-world"
    2. consistent: 只要对象中有一个属性名是要加引号的, 则对象中除计算属性名以外的所有属性名都加上引号
    3. preserve: 保留原风格, 有引号的继续有, 没有的也不会添加
  7. trailingComma: 尾随逗号, 在为对象添加新元素时可以直接添加而不用再去操心上一个元素末尾是否添加了逗号

    // 函数参数尾随逗号
    function (a,){}
    (b,)=>{} // 对象尾随逗号
    let obj {
    a: 1,
    b: 2,
    // 这样添加下一个属性的时候就不用操心b的末尾是否有逗号了
    } // 数组尾随逗号
    let arr = [1,2,3,]
    // 注意这种方式的数组不是尾随逗号, 而是称为稀疏数组, 元素的值是null
    let arr2 = [1,2,,,] // arr2.length => 5
    1. es5(默认值): 在ES5标准下添加尾随逗号(对象、数组等)
    2. all: 与es5的区别在于函数形参和函数调用传递的实参是否使用尾随逗号
    3. none: 不使用尾随逗号
  8. bracketSpacing: 对象的大括号之间是否有空格

    • true(默认值) 示例: { foo: bar }
    • false 示例: {foo: bar}
  9. arrowParens: 当es6箭头函数只有一个参数时是否添加括号

    • always(默认值): 总是添加
    • avoid: 尽量不添加
  10. vueIndentScriptAndStyle: 是否缩进Vue组件文件中的<script><style>标签

    • false(默认值): 不缩进
    • true: 缩进
  11. endOfLine: 行尾的形式, Windows用CRLF, macOS用LF, LF更兼容

    1. lf: 仅\n换行, 常见于 Linux 和 macOS 以及 git repos 内
    2. crlf: 回车符 + 换行符 (\r\n), 在 Windows 上很常见
    3. cr: 仅回车符(r), 很少使用
    4. auto: 保持原有方式, 如果文件中lf与crlf共存, 则以第一行的行尾样式为准格式化所有
  12. embeddedLanguageFormatting: 是否格式化嵌入的代码块, 如markdown中的code block 或 HTML中let html = <html><head></head></html>

    • auto: 如果 Prettier 可以自动识别嵌入代码, 则格式化嵌入代码
    • off: 永远不要自动格式化嵌入的代码

最后奉上我所使用的.prettierrc和.prettierignore

.prettierrc文件:

{
"printWidth": 120,
"tabWidth": 4,
"semi": false,
"singleQuote": true,
"quoteProps": "as-needed",
"trailingComma": "es5",
"bracketSpacing": true,
"arrowParens": "avoid",
"proseWrap": "never",
"vueIndentScriptAndStyle": true,
"endOfLine": "lf",
"embeddedLanguageFormatting": "off"
}

.prettierignore文件:

.DS_Store
node_modules
node_modules/**/*
node_modules/**/*.*
/dist # local env files
.env.local
.env.*.local # Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log* # Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw? # 重要的环境依赖文件
package.json
package.lock.json # 代码格式化插件的配置文件
.prettierrc
.prettierignore # git忽略文件
.gitignore # 不对markdown进行格式化, 容易打乱自己编排的样式
*.md

Prettier-Code Formater代码格式化插件使用教程的更多相关文章

  1. Sublime Text 3下载安装以及安装HTML-CSS-JS Prettify代码格式化插件

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Sublime Text的安装以及安装插件步骤. 下载Sublime Text 官网地址:http://www.sublimetex ...

  2. HTML-CSS-JS Prettify 代码格式化插件

    前提:已经安装 node.js.安装插件 HTML-CSS-JS Prettify,修改node路径,即可通过单击右键 HTML-CSS-JS Prettify 中的 Prettify Code 使用 ...

  3. vim代码格式化插件clang-format

    title: vim代码格式化插件clang-format date: 2017-12-12 20:28:26 tags: vim categories: 开发工具 安装vim-clang-forma ...

  4. sublime text3:下载代码格式化插件和汉化插件

    1.从官网下载sublime text3 2.下载插件工具 A.使用Ctrl+`(Esc键下方)快捷键或者通过View->Show Console菜单打开命令行 将以下代码复制后粘贴,然后按En ...

  5. IDEA工具java开发之 常用插件 git插件 追加提交 Code Review==代码评审插件 撤销提交 撤销提交 关联远程仓库 设置git 本地操作

    ◆git 插件 请先安装git for windows ,git客户端工具 平时开发中,git的使用都是用可视化界面,git命令需要不时复习,以备不时之需 1.环境准备 (1)设置git (2)本地操 ...

  6. 在Sublime Text 3上安装代码格式化插件CodeFormatter

    1.了解CodeFormatter插件 在Sublime Text 3中编写代码,为了能让我们的代码格式变得漂亮整洁,需要一个能自动格式代码的插件.这里发现CodeFormatter插件不错,它能支持 ...

  7. sublime代码格式化插件HTML/CSS/JS prettify

    1. 进入下载链接,安装node.js (根据自己使用版本) https://nodejs.org/en/download/ 注意: 记住node.js的 安装路径 2.sublime HTML/CS ...

  8. Notepad++ 代码格式化插件

    UniversalIndentGUI 是一个代码格式化工具合集,基于很多开源的代码格式化项目.有NPP的插件版也有独立的程序,支持常见代码格式. 支持的代码格式: C, C++, C#, Cobol, ...

  9. Sublime text3 代码格式化插件vue

    同事用的windows的sublime轻量级容易上手.我们现在强制eslint规范.我们就需要安装这个格式化代码的插件"html-css-js-prettify" 使用 Subli ...

随机推荐

  1. 基于 CentOS 8 搭建 openLDAP 服务器

    转载请注明原文地址:基于 CentOS 8 搭建 openLDAP 服务器 环境 OS: CentOS 8.4.2105 PHP: 7.4.21 注意 CentOS 7 中可能默认提供了 openLD ...

  2. 28、windows下通过MSI图形界面方式安装mysql

    28.1.下载mysql: 1. www.mysql.com 2. 3. https://dev.mysql.com/downloads/mysql/ 4. 5. 28.2.安装: 双击下载的&quo ...

  3. Web自动化之iframe切换

    一.如何判断元素是否在iframe中 选中要操作的元素,通过下方的父节点查看是否存在iframe,存在则元素在iframe,需要切换至iframe中进行元素的操作 二.iframe切换方式一 1.方式 ...

  4. 资源:Maven仓库地址路径

    Maven下载路径 https://archive.apache.org/dist/maven/maven-3/ 查找需要引入的包路径时,可以在maven仓库进行查找 maven仓库地址:https: ...

  5. redis阻塞原因以及处理方案

    来源:https://blog.csdn.net/francis123580/article/details/82500700 Redis是单线程架构,在高并发的场景下,如果出现阻塞,会有严重后果,以 ...

  6. python使用笔记008-模块

    模块的原理: 1.就是一个python文件 2.标准模块是python自带的 3.第三方模块需要自己安装 导入模块的顺序: 1.从当前目录下找 2.从python的环境变量中找 一.自己定义的模块 1 ...

  7. 关于hive的基础

    Hive基础 1.引入原因 对存在HDFS上的文件或HBase中的表进行查询时,是要手工写一堆MapReduce代码 对于统计任务,只能由懂MapReduce的程序员才能搞定 事实上,许多底层细节实际 ...

  8. C语言:易错题

    1. int x=y=z=0;//实际只声明了变量x,而变量y,z并没有声明.可以修改为:int x=0,y=0,z=0; 或int x,y,z; x=y=z=0; 2.int z=(x+y)++;/ ...

  9. python 读注册表 检测NET版本

    from winreg import * import re def subRegKey(key, pattern, patchlist): # 个数 count = QueryInfoKey(key ...

  10. python基础之while语句操作

    # i = 0# while (i < 9):# print("i ----> ",i)# i = i + 1# print(i,"i即将大于或者等于9,wh ...