VsCode 搭配 Prettier、Eslint使用

文章前言

永远把别人对你的批评记在心里,别人的表扬,就把它忘了。Hello 大家好~!我是南宫墨言QAQ

本文主要是记录在VS Code开发过程中一些关于规划化工具的使用,特地记录下与诸位分享,文中如果有阐述的不对的地方,希望大家在评论区指出讨论,谢谢

观看到文章最后的话,如果觉得不错,可以点个关注或者点个赞哦!感谢~❤️

文章主体

感谢各位观者的耐心观看,规范化工具k使用正片即将开始,且听南宫墨言QAQ娓娓道来

俗话说:工欲善其事,必先利其器。把开发工具弄好,对我们开发来说能达到事半功倍,也规避了很多错误等

本文阐述的内容基本上都是在项目的基础上配置的,这样子即使别人拉了你的代码,或者你在另外一台电脑,这些配置依然有效,但是弊端就是你可以新建项目的时候需要将这些配置重新引入。万事都有利弊,看你们自己的取舍了,哈哈

配置信息汇总

我喜欢把我弄成的时候的有关配置啥的先贴上来,有的人可能不想听我废话,想先来配置试一下效果,哈哈

  • package.json 中 devDependencies 里关于插件的版本
json 复制代码
"eslint": "^8.19.0",
"eslint-plugin-prettier": "5.0.0",
"prettier": "3.0.0",
  • settings.json(这个是指项目.vscode/settings.json)
json 复制代码
{
  // 编辑器设置
  /* 配置 Tab 空格数 */
  "editor.tabSize": 2,
  /* 字体大小 */
  "editor.fontSize": 16,
  /* 文字行高 */
  "editor.lineHeight": 0,
  // "editor.defaultFormatter": "esbenp.prettier-vscode",

  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  // window
  /* 调整窗口的缩放级别 */
  "window.zoomLevel": 0,

  // 工作区编辑设置
  /* 标签格式 short:显示文件名及其目录名*/
  "workbench.editor.labelFormat": "short",
  /* 是否显示为预览编辑器 */
  "workbench.editor.enablePreview": false,
  /* 工作台中使用的颜色主题 */
  "workbench.colorTheme": "Atom One Dark",

  // 终端设置
  /* 字体大小 */
  "terminal.integrated.fontSize": 15,

  // git设置
  /* 自动获取 */
  "git.autofetch": true,
  /* 同步 Git 存储库之前确认 */
  "git.confirmSync": false,
  /* 当没有staged段更改时,提交所有更改 */
  "git.enableSmartCommit": true,
  

  // typescript设置
  // "[typescript]": {
  //   /* 优先使用*/
  //   "editor.defaultFormatter": "esbenp.prettier-vscode"
  // },
  /* 函数名称后面加空格*/
  "typescript.format.insertSpaceBeforeFunctionParenthesis": true,
  "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

  // javascript设置
  // "[javascript]": {
  //   "editor.defaultFormatter": "esbenp.prettier-vscode"
  // },
  /* 函数名称后面加空格*/
  "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
  "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,

  // json设置
  // "[json]": {
  //   "editor.defaultFormatter": "esbenp.prettier-vscode"
  // },

  // other
  /* 设置文件图标 */
  "workbench.iconTheme": "material-icon-theme",
}
  • .prettierrc.js
php 复制代码
module.exports = {
  /** 一行最多 120 字符 */
  printWidth: 120,
  /** 使用 2 个空格缩进 */
  tabWidth: 2,
  /** 不使用 tab 缩进,而使用空格 */
  useTabs: false,
  /** 行尾需要有分号 */
  semi: true,
  /** 使用单引号代替双引号 */
  singleQuote: true,
  /** 对象的 key 仅在必要时用引号 */
  quoteProps: 'as-needed',
  /** jsx 不使用单引号,而使用双引号 */
  jsxSingleQuote: false,
  /** 末尾使用逗号 */
  trailingComma: 'all',
  /** 大括号内的首尾需要空格 { foo: bar } */
  bracketSpacing: true,
  /** 箭头函数,只有一个参数的时候,也需要括号 */
  arrowParens: 'always',
  /** 每个文件格式化的范围是文件的全部内容 */
  rangeStart: 0,
  rangeEnd: Infinity,
  /** 不需要写文件开头的 @prettier */
  requirePragma: false,
  /** 不需要自动在文件开头插入 @prettier */
  insertPragma: false,
  /** 使用默认的折行标准 */
  proseWrap: 'preserve',
  /** 根据显示样式决定 html 要不要折行 */
  htmlWhitespaceSensitivity: 'css',
  /** 换行符使用 lf */
  endOfLine: 'lf',
};
  • .eslintrc.js
java 复制代码
module.exports = {
  root: true,
  plugins: ['prettier'], // prettier 一定要是最后一个,才能确保覆盖
  rules: {
    'prettier/prettier': 'error',
  },
  extends: ['@react-native', 'plugin:prettier/recommended'],
};

贴完配置信息,后面将要说下插件的使用了

Prettier

  • 问题

    每位开发者对代码书写风格的理解或多或少有所差异,有的人认为需要在末尾加分号,有的人认为基于JS引擎的识别能力根本没有必要加分好。这只是其中一个例子,实际开发中还会存在各种各样代码风格问题,为了停止这场争论,急需一个统一代码风格的工具

  • 是什么

    Prettier 是一个固执己见的代码格式化程序,是一种严格规范的代码风格工具,主张尽量降低可配置性,严格规定组织代码的方式。它的出现就是为了统一代码风格,停止这场无休止的争论

    Prettier 通过语法分析将代码解析为 AST 树,在 AST 树上应用代码风格规范重新生成代码

    Prettier 根据文件路径自动推断解析器(.js 文件使用 babel 解析器、.css 文件使用 css 解析器),对代码进行解析。对不同类型文件的识别和解析受限于 Prettier 的内部支持,因此 Prettier 并非覆盖所有类型的文件,如下图所示,支持前端主流开发语言,足够应对日常开发。

  • U

    首先我要先安装插件 Prettier - Code formatter

其次打开项目根目录下的 .prettierrc.js(没有的话就新建), 并在文件内填充以下内容

php 复制代码
module.exports = {
  /** 一行最多 120 字符 */
  printWidth: 120,
  /** 使用 2 个空格缩进 */
  tabWidth: 2,
  /** 不使用 tab 缩进,而使用空格 */
  useTabs: false,
  /** 行尾需要有分号 */
  semi: true,
  /** 使用单引号代替双引号 */
  singleQuote: true,
  /** 对象的 key 仅在必要时用引号 */
  quoteProps: 'as-needed',
  /** jsx 不使用单引号,而使用双引号 */
  jsxSingleQuote: false,
  /** 末尾使用逗号 */
  trailingComma: 'all',
  /** 大括号内的首尾需要空格 { foo: bar } */
  bracketSpacing: true,
  /** 箭头函数,只有一个参数的时候,也需要括号 */
  arrowParens: 'always',
  /** 每个文件格式化的范围是文件的全部内容 */
  rangeStart: 0,
  rangeEnd: Infinity,
  /** 不需要写文件开头的 @prettier */
  requirePragma: false,
  /** 不需要自动在文件开头插入 @prettier */
  insertPragma: false,
  /** 使用默认的折行标准 */
  proseWrap: 'preserve',
  /** 根据显示样式决定 html 要不要折行 */
  htmlWhitespaceSensitivity: 'css',
  /** 换行符使用 lf */
  endOfLine: 'lf',
};

这里暂时不补充具体使用的贴图,等说完 Eslint 后贴上两者结合使用的贴图

Eslint

  • 问题

JavaScript本身是一门动态弱类型语言,原始状态下没有语法检查工具支持,开发者只能在运行代码时发现错误,不断"试错",无休止的。。。。,那么就需要一个工具来改善这种情况,这个时候 Eslint 就来了

  • 是什么

Prettier 专注于统一代码样式,而 ESLint 专注于找到代码存在的问题避免错误。

Eslint可以找出可能发生的语法错误(使用未声明变量、修改 const 变量......)、提示你删除多余的代码(声明而未使用的变量、重复的 case ......)等问题

这里暂时不补充具体使用的贴图,等说完 Eslint 后贴上两者结合使用的贴图

Eslint 结合 Prettier 使用

新建一个test.js文件,在里面声明一个变量a

这里会提醒我们需要使用单引号替换双引号

在我们按下保存的时候

这里我们会看到双引号被替换成单引号,并其末尾加上了分号,但是此时提醒我们a变量并未使用

接着我们打印一下a

这里我们看到提醒a变量并未使用的信息没有了,但是出现提醒我们{}里前后需要加上空格

此时我们据悉按下保存的时候

我们发现代码被格式化了,错误提醒也没有了

上面只是简单演示一个例子,对于未演示的其他配置同样可以生效,你可以自己动手试试看,这里就不再一一演示了

忽略文件

当然可能并不是所有文件你都想通过eslint、prettier来格式化,这个时候我们就可以在根目录下新建 .eslintignore 和 .prettierignore, 可以参考 .gitignore 进行配置

结尾营业

看官都看到这了,如果觉得不错,可不可以不吝啬你的小手手帮忙点个关注或者点个赞

相关推荐
LIUENG9 小时前
快速开发一个 VSCode 插件
前端·visual studio code
996终结者6 天前
同类软件对比(四):Jupyter vs PyCharm vs VS Code:Python开发工具终极选择指南
vscode·python·jupyter·pycharm·visual studio code
BD10 天前
I18n Fast:一个彻底解决了国际化项目痛点的 VSCode 插件
visual studio code
moshuying11 天前
🚀 从零到一:打造你的VSCode圈复杂度分析插件
visual studio code·cursor
Zayn16 天前
前端路径别名跳转和提示失效?一文搞懂解决方案
前端·javascript·visual studio code
花载酒17 天前
10个我离不开的 VSCode 插件
前端·visual studio code
scilwb17 天前
NVIDIA Omniverse和Isaac Sim:Isaac Sim的ROS接口与相机影像、位姿真值发布/保存
linux·visual studio code
LilyCoder18 天前
HTML5七夕节网站源码
前端·javascript·html·html5·visual studio code
gauch21 天前
vscode 调试 Go 的配置解释(photoprism / Docker / 远程调试 / Delve)
后端·ai编程·visual studio code
xw523 天前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·visual studio code·trae