Prettier+Vscode setting提高前端开发效率

news2024/11/28 18:38:04

文章目录

  • 前言
  • Prettier
    • 第一步:下载依赖(团队合作)或下载插件(独立开发)
    • 第二步:添加.prettierrc.json文件
      • **以下是我使用的**
      • **配置规则**
    • 第三步:添加.prettierignore文件
      • **以下是我常用的**
      • **配置规则**
    • 总结Prettier
  • VSCode中setting设置
    • 常见的setting设置
    • 配置解释
      • 1. 编辑器配置 (`editor` 部分)
      • 2. 保存时格式化的配置 (`editor.codeActionsOnSave`)
      • 3. 静默 ESLint 样式规则 (`eslint.rules.customizations`)
      • 4. 文件配置 (`files` 部分)
      • 5. ESLint 配置 (`eslint` 部分)
      • 6. 搜索和隐藏文件配置 (`files.exclude` 和 `search.exclude` 部分)
      • 7.清爽界面
    • 结尾

前言

  • 大家好,上一篇一文读懂 系列的文章中我们介绍了前端的代码格式化校验工具ESLient。代码格式是进行自动校验了,但你还要一个个的微调很麻烦不是吗

  • 本文介绍和ESLient配合使用的Prettier实现编译器自动将代码格式化。 同时也介绍VsCode的 setting设置,分享我开发时常用的配置。

  • 一文读懂 ESLint配置 一文读懂 ESLint配置

Prettier

    • Prettier可以通过JSON 、YAML 、JavaScript 等方式来进行配置。其作用就是自动统一代码风格,例如缩进、单/双引号、行尾逗号等,在本文将使用json进行配置。

第一步:下载依赖(团队合作)或下载插件(独立开发)

  • 如果你不是一个人,而是一个团队开发一个项目,这个时候就要给你的项目添加Prettier的相关依赖
  • 如果你只是个人开发,那么可以不用添加这个依赖,直接到VScode中下载相关插件就可以了
  • 两者都会影响到项目的代码自动格式化,区别只是下载依赖那么项目自己自带自动格式化,而不下载依赖本质上其实是 自己对编译器的私设

下载依赖

pnpm add -D prettier

下载插件

Prettier

image-20240819002220383

  • 没有安装的直接点击安装就可以了

第二步:添加.prettierrc.json文件

  • .prettierrc.json文件的主要作用就是定义自动格式化的格式

以下是我使用的

{
  "singleQuote": true,
  "semi": false,
  "printWidth": 100,
  "trailingComma": "all",
  "endOfLine": "crlf",
  "quoteProps": "as-needed",
  "tabWidth": 2
}

配置规则

配置项取值解释示例
singleQuotetrue启用单引号,默认为 false。设置为 true 后,字符串使用单引号而不是双引号。const message = 'Hello, world!';
semifalse禁用分号,默认为 true。设置为 false 后,不在行尾添加分号。const name = 'John'
printWidth100设定每行的最大字符数,超过这个限制时会自动换行。默认为 80一行代码超过 100 个字符时会自动换行
trailingComma'all'控制是否添加尾随逗号。可选值:"none"(不添加)、"es5"(在 ES5 支持的地方添加)、"all"(在所有可能的地方添加)。const obj = { name: 'John', age: 30, }
endOfLine'crlf'指定行尾符号。可选值:"lf"(换行符)、"crlf"(回车换行)、"cr"(回车)、"auto"(自动检测)。Windows 系统使用 CRLF,Unix 系统使用 LF
quoteProps'as-needed'控制对象属性名是否加引号。可选值:"as-needed"(需要时加引号)、"consistent"(所有属性名加引号)、"preserve"(保持原样)。{ "name": 'John', age: 30 }as-needed 时,age 没有引号)
tabWidth2指定缩进的空格数,默认为 2代码缩进为 2 个空格

第三步:添加.prettierignore文件

  • prettierignore文件的作用就是指定哪些文件需要被格式化,哪些不需要

以下是我常用的

docs
dist
public
node_modules

.versionrc
auto-imports.d.ts
components.d.ts

**/dist/**
**/public/**
**/docs/**
**/node_modules/**
**/.versionrc/**
**/components.d.ts/**
**/auto-imports.d.ts/**

types/**/*

配置规则

规则描述示例
/path/to/file忽略指定的文件路径config/settings.json 忽略 config 目录下的 settings.json 文件
/path/to/directory/忽略指定的目录及其所有子内容dist/ 忽略 dist 目录及其所有文件和子目录
*.extension忽略特定文件扩展名的所有文件*.log 忽略所有 .log 文件
**/directory/忽略所有子目录中与指定目录名匹配的内容**/build/ 忽略所有子目录中的 build 目录
directory/file.*忽略指定目录下匹配的所有文件类型src/**/*.test.js 忽略 src 目录下所有 .test.js 文件
!pattern使用 ! 进行反向匹配,不忽略特定文件或目录!important.js 表示不忽略 important.js 文件
/node_modules/通常用于忽略第三方依赖目录node_modules/ 忽略所有依赖
/dist/忽略打包输出目录dist/ 忽略构建生成的文件
path/**/file忽略路径中所有子目录下匹配的文件src/**/test.js 忽略 src 中所有子目录下的 test.js 文件

总结Prettier

image-20240819010023579

  • 如图,通过安装插件、依赖。然后再项目的外面的位置添加这两个文件就能使用Prettier啦。但是光有Prettier还不够,因此我们接下来需要在vscode中的setting设置使用Prettier为自动格式化工具。

VSCode中setting设置

  • 从字面意思来看也能知道setting的作用就是个性化你的VSCode,而且在项目中有一个setting设置,那么所有人都会使用统一个VSCode设置进行开发。包括但不限于:文件检索、字体大小,格式化等。

常见的setting设置

image-20240819000535556

下面是我的vscode中常用的设置,我接下来会一一进行讲解

{
  // Editor
  "editor.cursorSmoothCaretAnimation": "on",
  "editor.guides.bracketPairs": "active",
  "editor.tabSize": 2,
  "terminal.integrated.fontSize": 16,
  "editor.fontFamily": "'FiraCode Nerd Font', Consolas, 'Courier New', monospace",
  "editor.hover.sticky": true,
  "explorer.confirmDelete": false,
  "editor.formatOnPaste": false,
  "editor.autoClosingBrackets": "always",
  "editor.defaultFormatter": "esbenp.prettier-vscode",

  "files.eol": "\r\n",
  "files.simpleDialog.enable": true,

  // 保存时格式化
  "editor.codeActionsOnSave": {
    "source.fixAll": "never",
    "source.fixAll.stylelint": "explicit",
    "source.fixAll.eslint": "explicit",
    "source.fixAll.prettier": "always"
  },

  "eslint.useFlatConfig": true,
  // Silent the stylistic rules in you IDE, but still auto fix them
  "eslint.rules.customizations": [
    { "rule": "styles/*", "severity": "off" },
    { "rule": "*-indent", "severity": "off" },
    { "rule": "*-spacing", "severity": "off" },
    { "rule": "*-spaces", "severity": "off" },
    { "rule": "*-order", "severity": "off" },
    { "rule": "*-dangle", "severity": "off" },
    { "rule": "*-newline", "severity": "off" },
    { "rule": "*quotes", "severity": "off" },
    { "rule": "*semi", "severity": "off" }
  ],

  // Enable eslint for all supported languages
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "vue",
    "html",
    "markdown",
    "json",
    "jsonc",
    "yaml"
  ],

  // 文件格式化配置
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  // 配置语言的文件关联
  "files.associations": {
    "pages.json": "jsonc", // pages.json 可以写注释
    "manifest.json": "jsonc" // manifest.json 可以写注释
  },

  // 隐藏文件,净化工作区可见文件
  "files.exclude": {
    // "**/.git": true,
    // "**/.svn": true,
    // "**/.hg": true,
    // "**/CVS": true,
    // "**/.DS_Store": true,
    // "**/Thumbs.db": true,
    // ".vite-cache": true,
    // ".npmrc": true,
    // ".stylelintignore": true,
    // "package-lock.json": true,
    // "config/vite.config.js.*": true,
    // "src/vite-env.d.ts": true,
    // "shims-uni.d.ts": true,
    // "**/shime-uni.d.ts": true,
    // "**/env.d.ts": true,
    // "vite.config.ts.timestamp-*": true,
    // "pnpm-lock.yaml": true
  },

  // 搜索时,排除文件
  "search.exclude": {
    "**/dist": true,
    "**/public": true,
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true,
    "**/auto-imports.d.ts": true,
    "config/vite.config.js.*": true,
    "**/components.d.ts": true,
    "**/node_modules": true,
    "**/Thumbs.db": true,
    ".vite-cache": true,
    ".eslintignore": true,
    ".stylelintignore": true,
    ".prettierignore": true,
    "package-lock.json": true,
    ".editorconfig": true,
    ".gitignore": true
  }
}

配置解释

1. 编辑器配置 (editor 部分)

  // Editor
  "editor.cursorSmoothCaretAnimation": "on",
  "editor.guides.bracketPairs": "active",
  "editor.tabSize": 2,
  "terminal.integrated.fontSize": 16,
  "editor.fontFamily": "'FiraCode Nerd Font', Consolas, 'Courier New', monospace",
  "editor.hover.sticky": true,
  "explorer.confirmDelete": false,
  "editor.formatOnPaste": false,
  "editor.autoClosingBrackets": "always",
  "editor.defaultFormatter": "esbenp.prettier-vscode",

  "files.eol": "\r\n",
  "files.simpleDialog.enable": true,

设置项描述
editor.cursorSmoothCaretAnimation"on"启用光标的平滑动画,使光标移动时更加顺滑。
editor.guides.bracketPairs"active"高亮匹配的括号对,"active" 表示仅高亮当前活动的括号对。
editor.tabSize2设置 Tab 键的缩进空格数为 2。
terminal.integrated.fontSize16设置 VSCode 集成终端的字体大小为 16。
editor.fontFamily'FiraCode Nerd Font', Consolas, 'Courier New', monospace设置编辑器使用的字体系列,优先使用 'FiraCode Nerd Font'
editor.hover.stickytrue使得代码提示信息在鼠标悬停时不自动消失。
explorer.confirmDeletefalse禁用删除文件时的确认提示对话框。
editor.formatOnPastefalse禁用粘贴内容时自动格式化。
editor.autoClosingBrackets"always"设置自动补全括号功能始终开启。
editor.defaultFormatter"esbenp.prettier-vscode"指定使用 Prettier 扩展作为默认的代码格式化工具。
  • 这部分有一部分是界面美化,个人使用体验良好,推荐按照我的设置

2. 保存时格式化的配置 (editor.codeActionsOnSave)

  // 保存时格式化
  "editor.codeActionsOnSave": {
    "source.fixAll": "never",
    "source.fixAll.stylelint": "explicit",
    "source.fixAll.eslint": "explicit",
    "source.fixAll.prettier": "always"
  },

设置项描述
source.fixAll"never"保存时不应用任何自动修复操作。
source.fixAll.stylelint"explicit"保存时仅在显式请求时应用 stylelint 的自动修复操作。
source.fixAll.eslint"explicit"保存时仅在显式请求时应用 eslint 的自动修复操作。
source.fixAll.prettier"always"保存时始终应用 prettier 的自动格式化。

3. 静默 ESLint 样式规则 (eslint.rules.customizations)

 // Silent the stylistic rules in you IDE, but still auto fix them
  "eslint.rules.customizations": [
    { "rule": "styles/*", "severity": "off" },
    { "rule": "*-indent", "severity": "off" },
    { "rule": "*-spacing", "severity": "off" },
    { "rule": "*-spaces", "severity": "off" },
    { "rule": "*-order", "severity": "off" },
    { "rule": "*-dangle", "severity": "off" },
    { "rule": "*-newline", "severity": "off" },
    { "rule": "*quotes", "severity": "off" },
    { "rule": "*semi", "severity": "off" }
  ],

规则严重级别描述
styles/*"off"关闭所有与样式相关的规则(如 stylelint),但仍允许自动修复。
*-indent"off"关闭与缩进相关的规则。
*-spacing"off"关闭与间距相关的规则(如 no-trailing-spaces)。
*-spaces"off"关闭与空格相关的规则。
*-order"off"关闭与代码顺序相关的规则(如属性顺序)。
*-dangle"off"关闭与尾随逗号相关的规则(如 comma-dangle)。
*-newline"off"关闭与换行相关的规则(如行尾换行)。
*quotes"off"关闭与引号样式相关的规则(如单引号与双引号的选择)。
*semi"off"关闭与分号相关的规则(如是否强制分号)。

4. 文件配置 (files 部分)

设置项描述
files.eol"\r\n"设置文件的行尾符号为 CRLF(适用于 Windows)。
files.simpleDialog.enabletrue启用简单对话框模式,替代默认的复杂对话框。
files.associations{ "pages.json": "jsonc", "manifest.json": "jsonc" }pages.jsonmanifest.json 文件关联为 jsonc 以支持注释。
files.exclude{ ... }隐藏指定的文件和目录,以保持工作区清洁。

5. ESLint 配置 (eslint 部分)

设置项描述
eslint.useFlatConfigtrue启用新的 Flat Config ESLint 配置模式。
eslint.rules.customizations[ { "rule": "...", "severity": "off" }, ... ]关闭所有样式相关的 ESLint 规则,但仍允许自动修复。
eslint.validate[ "javascript", "typescript", ... ]配置 ESLint 验证的语言和文件类型,如 JavaScript、TypeScript、Vue 等。
  • 是的

6. 搜索和隐藏文件配置 (files.excludesearch.exclude 部分)

设置项描述
files.exclude{ ... }隐藏工作区中的指定文件和目录,例如 .gitnode_modulespackage-lock.json 等。
search.exclude{ ... }在搜索时排除指定的文件和目录,例如 distpublicnode_modules.git 等。

7.清爽界面

image-20240819011310743

image-20240819011500381

image-20240819011527004

  • 这部分就是 files.exclude中,在文件配置那

结尾

  • vscode设置中比较经常使用的应该就是编译器、搜索方位、自动保存、隐藏文件等几个项了

  • 有了ESLient自动校验格式和Prettier自动保存格式,至此前端的项目开发再无后顾之忧,开发效率大大提高,项目代码规范良好。

img

img

你好,我是Qiuner. 为帮助别人少走弯路而写博客

这是我的 github https://github.com/Qiuner ⭐️

​ gitee https://gitee.com/Qiuner 🌹

如果本篇文章帮到了你 不妨点个吧~ 我会很高兴的 😄 (^ ~ ^)

想看更多 那就点个关注吧 我会尽力带来有趣的内容 😎

代码都在github或gitee上,可以去上面自行下载

如果你遇到了问题,自己没法解决,可以去我掘金评论区问。私信看不完,CSDN评论区可能会漏看 掘金账号 https://juejin.cn/user/1942157160101860 掘金账号

本人提供开发、代码讲解等服务。有意可点击文末微信号联系

更多专栏订阅:
  • 📊 一图读懂系列

  • 📝 一文读懂系列

  • ⚽ Uniapp

  • 🌟 持续更新

  • 🤩 Vue项目实战

  • 🚀 JavaWeb

  • 🎨 设计模式

  • 📡 计算机网络

  • 🎯 人生经验

  • 🔍 软件测试

掘金账号 CSDN账号

感谢订阅专栏 三连文章

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

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

相关文章

1000人规模冗余设置

1000人规模冗余设置 步骤①:Vlan Trunk Eth-trunk 底层配置 #eth-trunk配置: sw1 : int eth-trunk 2 mode lacp-static trunkport gi 0/0/2 trunkport gi 0/0/3 sw2 : int eth-trunk 2 mode lacp-static trunkport gi 0/…

PythonStudio 控件使用常用方式(三十三)TMonthCalendar

PythonStudio是一个极强的开发Python的IDE工具,官网地址是:https://glsite.com/ ,在官网可以下载最新版的PythonStudio,同时,在使用PythonStudio时,它也能及时为用户升到最新版本。它使用的是Delphi的控件&…

Mysql删除几亿条数据表中的部分数据

1、需求 老项目&#xff0c;实时数据还是用mysql去存储的&#xff0c;而且又没有定时去清理数据的程序。目前这些实时数据只需保留近半年的即可。 其他几张实时表数据量没有这么夸张。 我随即用 delete from table_name where id < 39000000 limit 10000 但是几亿条记录…

[DL]深度学习_扩散模型

扩散模型原理 深入浅出扩散模型 一、概念简介 1、Denoising Diffusion Probalistic Models&#xff0c;DDPM 1.1 扩散模型运行原理 首先sample一个都是噪声的图片向量&#xff0c;这个向量的shape和要生成的图像大小相同。通过Denoise过程来一步一步有规律的滤去噪声。Den…

【第69课】Java安全JWT攻防Swagger自动化算法签名密匙Druid未授权

免责声明 本文发布的工具和脚本&#xff0c;仅用作测试和学习研究&#xff0c;禁止用于商业用途&#xff0c;不能保证其合法性&#xff0c;准确性&#xff0c;完整性和有效性&#xff0c;请根据情况自行判断。 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0…

【逆向】打开页面403,加密值如何有其它页面内正则提取并更新

一、问题出现 # import requests # url https://www.regulations.gov/search?sortBypostedDate&sortDirectiondesc # response requests.get(url) # print(response.text) 正常页面打开没有自己看到的内容。 F12找到新的地址 import requests# headers { # accep…

使用VRoid Studio二次元建模,创建专属于自己的二次元卡通人物模型,创建完全免费开源且属于自己VRM模型

最终效果 文章目录 最终效果什么是VRoid Studio官网地址下载安装VRoid Studio1、可以去它的官网下载2、steam安装 创建模型配置参数 导出模型使用别人的VRM模型这里我分享几个不错的模型&#xff0c;大家可以自行去下载 完结 什么是VRoid Studio 如果你玩过能捏脸的游戏你就能…

免费体验!快速生成超逼真真人美图的Stable Diffusion模型!

前言 所有的AI设计工具&#xff0c;模型和插件&#xff0c;都已经整理好了&#xff0c;&#x1f447;获取~ 环境安装 1、安装Python 下载地址&#xff1a;https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe。 备注&#xff1a;把安装目录加入环境变量&…

AI打造独居女性生活漫画Vlog,这份涨粉秘籍不容错过!

在快节奏与高压的现代生活中&#xff0c;独居女性的日常成为了许多人向往的一片宁静之地。她们以独特的方式享受着自我成长与生活的美好&#xff0c;而这些细微却动人的瞬间&#xff0c;正是我们创作爆款Vlog的灵感源泉。 在这个数字化时代&#xff0c;我们用科技捕捉并重新诠释…

一些常见的测试类型及介绍

在刚开始学习软件测试的时候&#xff0c;总是看到很多种测试类型&#xff0c;除了下图软件测试分类外&#xff0c;还有一些常见的测试类型名称。 1.接口测试 接口测试用于检测外部系统与所测系统之间以及内部各个子系统之间的交互点&#xff0c;定义特定的交互点&#xff0c;通…

Ubuntu下载安装教程|Ubuntu最新长期支持(LTS)版本24.04 LTS下载安装

安装Ubuntu Ubuntu最新长期支持(LTS)版本24.04 LTS Ubuntu 24.04 LTS | 概览 Ubuntu长期支持(LTS)版本&#xff0c;LTS意为“长期支持”&#xff0c;一般为5年。LTS版本将提供免费安全和维护更新至 2029年4月。 Ubuntu 24.04 LTS&#xff08;代号“Noble Numbat”&#xff0c;…

【EI检索稳定】2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)

由悉尼科技大学和西南交通大学联合主办&#xff0c;四川大学、中南大学社会计算研究中心、西南财经大学、武汉理工大学协办的2024年第四届数字化社会与智能系统国际学术会议将于2024年11月22-24日在中国郑州举行。会议主题主要聚焦智能系统在数字化社会中的相关技术和应用发展。…

RM电控RTOS

OS即&#xff08;operating system&#xff09;操作系统&#xff0c;比如我们常用的windows系统&#xff0c;mac系统&#xff0c;android系统&#xff0c;ios系统&#xff0c;linux系统等&#xff0c;都属于操作系统。操作系统的本质是一个特殊的软件&#xff0c;它直接管理硬件…

一文彻底搞懂Transformer - FFNN(前馈神经网络)

Transformer 神经网络&#xff1a; 神经网络&#xff08;Neural Networks&#xff09;是一种模仿生物神经网络的结构和功能的数学或计算模型。它由大量的人工神经元&#xff08;也称为节点或处理单元&#xff09;相互连接而成&#xff0c;这些神经元之间通过带有权重的连接进行…

罗德与施瓦茨(RS)FSW50,FSW85,FSW67信号和频谱分析仪

Rohde & Schwarz FSW50,FSW67,FSW85信号和频谱分析仪 高性能罗德与施瓦茨 (R&S) FSW50 信号和频谱分析仪专为方便、准确和快速而设计。其独特的触摸屏、直观的多视图结果显示和优化的用户指南使 R&S FSW50 分析仪的操作高效便捷。凭借其无与伦比的相位噪声、无与伦…

数学生物学-2-离散时间模型(Discrete Time Models)

上一篇介绍了一个指数增长模型。然而&#xff0c;我们也看到&#xff0c;在现实情况下&#xff0c;细菌培养的增长是在离散的时间&#xff08;在这种情况下是小时&#xff09;进行测量的&#xff0c;种群并没有无限增长&#xff0c;而是趋于以S形曲线趋于平稳&#xff0c;称为“…

[ACL 2024] Revisiting Knowledge Distillation for Autoregressive Language Models

Contents IntroductionMethodRethinking Knowledge Distillation for Autoregressive LMsImproving Knowledge Distillation with Adaptive Teaching Modes ExperimentsReferences Introduction 作者提出 Autoregressive KD with Adaptive Teaching Modes (ATKD)&#xff0c;通…

Go语言开发通过本地数据xdb文件​查询获取IP地址的归属地区及运营商名称

说明&#xff1a; 用本地数据&#xff0c;离线识别ip属地&#xff0c;用于显示用户ip属地&#xff0c;不依赖第三方的api接口&#xff0c;本地数据包解析&#xff0c;解析速度快10微秒级别的查询效率。返回数据固定格式&#xff1a;国家|区域|省份|城市|ISP&#xff0c;例如&a…

c++11(三)

一、可变参数 1、可变参数模板 c语言中的 scanf 和 printf 可以支持我们传入任意个数的参数&#xff0c;原理就是用了参数包。 //可变参数包 template<class ...Args> void Print(Args... args) {} Args&#xff1a;模板参数包 args&#xff1a;函数形参参数包 声明…

检查linux系统中异常进程

1、查看非root运行的进程 [rootbastion-IDC ~]# ps -U root -u root -N 2、查看root运行的进程 [rootbastion-IDC ~]# ps -u root 注意&#xff1a;UID为0的进程&#xff0c;查看该进程所打开的端口和文件 [rootbastion-IDC ~]#ps -ef 查看进程 [rootbastion-IDC ~]# l…