前端工具 Prettier 详细使用流程(兼容ESLint)

news2024/11/18 18:33:53

一、简介

  • 中文文档,英文官网。

  • Prettier 是一个开箱即用的代码格式化程序。用来批量处理旧代码的统一,涉及引号、分号、换行、缩进等。支持目前大部分语言处理,包括 JavaScriptFlowTypeScriptCSSSCSSLessJSXVueGraphQLJSONMarkdown ,它通过解析代码并使用自己的规则。

二、安装使用

  • vscode 需开启保存配置

    image.png

  • 安装方式:

    • 方式一vscode 安装插件 Prettier,正常在项目文件根目录添加配置文件即可,会自动检测。

    • 方式二npm

      $ npm install --save-dev --save-exact prettier
      
    • 方式三yarn

      $ yarn add --dev --exact prettier
      
  • 配置文件有很多种写法,选一种就行,不用纠结,没必要给自己挖坑!

    • .prettierrc

    • .prettierrc.js 当前个人使用的

    • .prettierrc.json 官方文档使用的

    • prettier.config.js

    • package.json 中配置 prettier 属性

    • … (附:官网配置文件支持的命名方式,以及编写导出方式)

    有安装 ESLint 的情况下,可以尝试将 Prettier 的配置偏向 ESLint 的校验结果。列一下常见的冲突点:

    1、prettier 会默认把单引号变成双引号,然后 eslint 校验报错
    2、js 每行代码后面会加一个分号,然后 eslint 校验报错
    3、函数结束之后会加一个逗号,然后 eslint 校验报错
    ......
    

    在项目根目录创建 .prettierrc.js,添加自己需要的配置,这里列了一下常用配置,包含上面冲突点的兼容,其他配置自动可额外添加(附:官方文档支持的配置属性)

    module.exports = {
      printWidth: 100,
      tabWidth: 2, // 超过最大值换行
      semi: false, // 结尾不用分号
      singleQuote: true, // 使用单引号
      disableLanguages: ['vue'], // 不格式化 vue 文件,vue 文件的格式化单独设置
      htmlWhitespaceSensitivity: 'ignore', // 标签换行不完整问题
      trailingComma: 'none', // 函数后面不加逗号,如果不写这一个,在methods 最后一个函数也会加逗号,eslint会报错,多了一个逗号
    }
    
  • 项目中配置好之后,Ctrl + SCommand + S 保存

    如果保存无效,并没有进行格式化,在代码中右键菜单中,找到 使用...格式化文档 修改格式化文档方式为 Prettier,然后再次尝试保存,或者在右键菜单中直接点击 格式化文档

  • 可以忽略指定文件夹或文件中代码不进行格式化,以免提交出现冲突,创建 .prettierignore 文件,它使用的是 gitignore 语法。

    # Ignore artifacts:
    build
    coverage
    
    # Ignore all HTML files:
    *.html
    

三、补充

  • 基本配置效果对比

    {
        // tab 缩进大小,默认为 2
        "tabWidth": 4,
        // 使用 tab 缩进,默认 false
        "useTabs": false,
        // 使用分号, 默认 true
        "semi": false,
        // 使用单引号, 默认 false (在 jsx 中配置无效, 默认都是双引号)
        "singleQuote": false,
        // 行尾逗号,默认 none ,可选 none|es5|all
        // es5 包括 es5 中的数组、对象
        // all 包括函数对象等所有可选
        "TrailingCooma": "all",
        // 对象中的空格 默认true
        // true: { foo: bar }
        // false: {foo: bar}
        "bracketSpacing": true,
        // JSX 标签闭合位置 默认 false
        // false: <div
        //          className=""
        //          style={{}}
        //       >
        // true: <div
        //          className=""
        //          style={{}} >
        "jsxBracketSameLine": false,
        // 箭头函数参数括号 默认 avoid 可选 avoid| always
        // avoid 能省略括号的时候就省略 例如x => x
        // always 总是有括号
        "arrowParens": "avoid"
    }
    
  • vscode 安装插件之后,除了在项目中添加配置文件之外,也可以直接配置到 vscode 的配置文件( settings.json )中,这样就不需要每个项目添加配置文件了

  // prettier配置,,修改了配置文件,必须重启 vscode 才会生效
  "prettier.configPath": "/Users/xxx/Desktop/Project/npm/dts-gen/.prettierrc.js", // 配置文件路径,配置了这个路径,就不需要单个配置了,要不然会覆盖
  "eslint.alwaysShowStatus": true, // 总是显示 eslint 状态
  "prettier.printWidth": 120, // 超过最大值换行
  "prettier.tabWidth": 2, // 缩进字节数
  "prettier.useTabs": false, // 缩进不使用 tab,使用空格
  "prettier.semi": true, // 句尾添加分号
  "prettier.singleQuote": true, // 使用单引号代替双引号
  "prettier.proseWrap": "preserve", // 默认值。因为使用了一些折行敏感型的渲染器(如 GitHub comment)而按照 markdown 文本样式进行折行
  "prettier.arrowParens": "avoid", //  (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号
  "prettier.bracketSpacing": true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"
  "prettier.endOfLine": "auto", // 结尾是 \n \r \n\r auto
  "prettier.eslintIntegration": false, // 不让 prettier 使用 eslint 的代码格式进行校验
  "prettier.htmlWhitespaceSensitivity": "ignore", // 标签换行不完整问题
  "prettier.ignorePath": ".prettierignore", // 不使用 prettier 格式化的文件填写在项目的.prettierignore文件中
  "prettier.BracketSameLine": false, // 在 jsx中 把 '>' 是否单独放一行
  "prettier.jsxSingleQuote": false, // 在 jsx 中使用单引号代替双引号
  // "prettier.parser": "babylon", // 格式化的解析器,默认是 babylon
  "prettier.requireConfig": false, // Require a 'prettierconfig' to format prettier
  "prettier.stylelintIntegration": false, // 不让 prettier 使用 stylelint 的代码格式进行校验
  "prettier.trailingComma": "none", // 属性值 es5 表示在对象或数组最后一个元素后面是否加逗号(在ES5中加尾逗号)
  "prettier.tslintIntegration": false, // 不让 prettier 使用 tslint 的代码格式进行校验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机视觉】华为天才少年谢凌曦:关于视觉识别领域发展的个人观点!

文章目录 一、前言二、CV的三大基本困难和对应研究方向三、以下简要分析各个研究方向3.1 方向1a&#xff1a;神经网络架构设计3.2 方向1b&#xff1a;视觉预训练3.3 方向2&#xff1a;模型微调和终身学习3.4 方向3&#xff1a;无限细粒度视觉识别任务 四、在上述方向之外五、结…

“踏浪”自动驾驶量产潮,商业化加速的知行科技奔赴IPO

今春过半&#xff0c;自动驾驶产业链扎堆上市的情况在延续&#xff0c;一位新的重量级选手加入了这场热潮。 4月4日&#xff0c;自动驾驶领域领先的解决方案提供商知行汽车科技(苏州)股份有限公司&#xff08;即“知行科技”&#xff09;&#xff0c;向港交所递交招股书&#…

全网多种方法解决error: failed to push some refs to ‘xxx‘

文章目录 1. 复现错误2. 分析错误3. 解决错误4. 解决该错误的其他方法 1. 复现错误 今天使用git status查看文件状态&#xff0c;发现有一个文件未提交&#xff0c;如下代码所示&#xff1a; D:\project\test>git status On branch master Your branch is up to date with …

【剑指offer】学习计划day1

目录 一. 前言 二. 用两个栈实现队列 a.题目 b.题解分析 c.AC代码 二. 包含min函数的栈 a.题目 b.题解分析 c.AC代码 一. 前言 本系列是针对Leetcode中剑指offer学习计划的记录与思路讲解。详情查看以下链接&#xff1a; 剑指offer-学习计划https://leetcode.cn/study-pla…

Java八大基本数据类型

Java八大基本数据类型 byteshortintlongfloatdoublebooleanchar byte byte数据类型是8位、有符号的&#xff0c;以二进制补码表示的整数 最小值是-128&#xff08;-2^7&#xff09;&#xff1b; 最大值是127&#xff08;2^7-1&#xff09;; 默认值是0&#xff1b; byte类型用在…

stm32读写内部Flash

stm32内部flash地址架构映射 因为我的stm32f407的内部flash是1M的所以块2不存在&#xff0c;但他的地址仍然存在&#xff0c;只是没有作用&#xff0c;这是stm32的整体框架。 主存储器 一般我们说 STM32 内部 FLASH 的时候&#xff0c;都是指这个主存储器区域&#xff0c;它…

duilib窗口拖动

直接使用如下就可以了&#xff0c;不用再使用继承。 LRESULT CXmlWnd::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) {POINT pt;RECT rcClient;RECT rcCaption;CControlUI * pControl NULL;rcCaption m_P…

C++练级之初级:第五篇

C练级之初级&#xff1a;第五篇 第五篇 C练级之初级&#xff1a;第五篇1.auto关键字2.for循环改进3.指针空值nullptr4.内联函数4.1内联函数的概念4.2内联函数的注意点 总结 1.auto关键字 &#x1f914;什么是auto(automatic的缩写&#xff0c;自动的意思)关键字&#xff1f; au…

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法1+2 (视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 准备环境安装可实现 KubeVirt 操作的 Tekton 资源创建密钥对 在 CI/CD 流水线管道中创建 VM方法1&#xff1a;通过 Manifest 任务创建 VM方法2&am…

如何实现Spring AOP以及Spring AOP的实现原理

AOP:面向切面编程,它和OOP&#xff08;面向对象编程)类似。 AOP组成: 1、切面:定义AOP是针对那个统一的功能的&#xff0c;这个功能就叫做一个切面&#xff0c;比如用户登录功能或方法的统计日志&#xff0c;他们就各种是一个切面。切面是有切点加通知组成的。 2、连接点:所有可…

ClickHouse快速入门

目录 1 ClickHouse介绍1.1 ClickHouse 的特点1.1.1 列式存储1.1.2 DBMS 的功能1.1.3 多样化引擎1.1.4 高吞吐写入能力1.1.5 数据分区与线程级并行1.1.6 性能对比 2 数据类型2.1 整型2.2 浮点型2.3 布尔型2.4 Decimal 型2.5 字符串2.6 枚举类型2.7 时间类型2.8 数组 3 表引擎3.1…

SpringBoot tomcat核心参数

server.tomcat.threads.min-spare10server.tomcat.threads.max200server.tomcat.max-connections8192server.tomcat.accept-count100 第一个参数代表程序启动就会开启10个线程。 如果我改成20个&#xff0c;看看什么情况&#xff0c;可以看到初始化了20个线程 看第二个参数&am…

2022年中国云市场份额:阿里云腾讯云下降

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 4月23日&#xff0c;IDC发布《中国公有云服务市场(2022下半年)跟踪》&#xff0c;占据前四的分别为阿里云(40.6%)、华为云(11.0%)、腾讯云(11.0%)、中国电信(8.7%)。咱们说重点&#xff0c;如下图所…

DFMEA 在车用燃料电池空压机设计中的应用

摘要&#xff1a; DFMEA在空压机研发中的应用 氢气具有资源丰富、热值高和无污染等特点&#xff0c;因而是燃料电池汽车最理想的二次能源。空压机作为燃料电池汽车的关键总成&#xff0c;掌握其核心部件的设计和制造技术非常必要。应用传统的设计方法进行相关零部件如空气轴承…

D3.js(2) Data-Join

什么是Data-Join&#xff1f; 本质上是将数据与图元绑定 可以省去大量根据数据设置图元属性的代码量&#xff0c;对动态变化的数据提供统一接口 D3.js绑定数据的三个状态 Enter 数据数量>图元数量&#xff0c;d3.js会根据新增的数据生成相应的图元 给不存在数据绑定的图…

跨境电商服务简单说明

​ 前言 跨境电商服务是指通过互联网平台进行国际贸易的一种新型商业模式&#xff0c;涉及跨境物流、跨境支付、跨境电商平台等多个领域。随着全球化的不断推进和消费者需求的不断变化&#xff0c;跨境电商服务行业呈现出快速发展的趋势。 发展背景 跨境电商服务行业的发展背景…

基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用&#xff0c;是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估&#xff08;Millennium ecosystem assessment&#xff0c;MA&#xff09;提出生态系统服务包括供给、调节、…

JavaScript 函数调用和JavaScript 闭包

文章目录 一、JavaScript 函数调用二、JavaScript 闭包总结 一、JavaScript 函数调用 JavaScript 函数有 4 种调用方式。 每种方式的不同在于 this 的初始化。 this 关键字 一般而言&#xff0c;在Javascript中&#xff0c;this指向函数执行时的当前对象。 注意 this 是保留…

美创科技首届渠道高峰论坛| 两大分论坛亮点汇聚

4月22日&#xff0c;美创科技首届渠道高峰论坛在海南三亚隆重举行&#xff0c;本届高峰论坛以“新起点 新战略 共赢数安蓝海”为主题&#xff0c;全国各地200余家合作伙伴齐聚。当日下午&#xff0c;行业分论坛、技术分论坛两大论坛以及圆桌会议&#xff0c;多方视角、全方位共…

C++篇----auto、内联函数、函数重载

文章目录 一、auto二、内联函数&#xff08;inline)三、函数重载 一、auto auto在c中是会根据等号右边表达式自动推导等号左边的类型 #include<iostream> using namespace std;int main() {int a 0;auto b a;double c 1.1;auto d c;//打印类型typeid().name()cout &l…