使用Eslint配置规范并格式化你的代码

使用Eslint配置规范并格式化你的代码

前言

对于前端开发工程师来说,JavaScript 无疑是我们最好的伙伴了。而 ESLint,它是一款插件化的 JavaScript 代码静态检查工具,其核心是通过对代码解析得到的 AST(Abstract Syntax Tree,抽象语法树)进行模式匹配,定位不符合约定规范的代码。

社区里有很多不同版本的规范,每个团队也可能会制定自己的规范。编码风格千千万,而工程的配置就一套,在多人协作时就必然会出现规范报错的情况。我们需要配置一套规则,让我们不需要 Care 规则到底是什么,在保存文件的时候,自动按照工程规范格式化代码。

怎么办呢?

提示:Eslint 提供了风格指南规则,并明确表示了哪些是可修复的:Stylistic Issues https://cn.eslint.org/docs/rules/#stylistic-issues


提示:以下是本篇文章正文内容,下面案例可供参考

一、我们需要做的是什么?

  1. 本地安装 Eslint 和社区推荐的规范 eslint-config-airbnb
    (https://github.com/airbnb/javascript) (也可以是别的规范)。插件会使用安装的 Eslint
    库(如果你还未安装:npm i eslint eslint-config-airbnb)。
  2. VSCode 安装 Eslint插件。
  3. 添加 .eslintrc.js 配置文件。
  4. 更改 VSCode 的 setting.json 文件的配置。

其中,想要实现自动按照工程的规则格式化,第四步必不可少。

setting.json

如果你已经安装好了 Eslint插件,按 cmd + shif + p,打开 defaultSettings.json 文件,按 cmd + f 搜索 eslint 可以看到所有 ESlint 在 VSCode 内的默认配置。我们需要对它做一些修改。

还是按 cmd + shift + p 打开 settings.json 文件。这个文件是用户自定义配置,里面的配置会覆盖 defaultSettings.json 里的同名配置。我们在这个文件里对 ESLint 插件 的配置做一些修改,让它达到我们想要的效果。

首先,我们想要 保存时自动格式化,实现这个效果的配置有三种:

  • editor.formatOnSave + eslint.format.enable。前者配置:保存时格式化,后者配置:将 ESlint
    规则作为格式化标准。
  • eslint.autoFixOnSave
  • editor.codeActionsOnSave

其中,第二种 eslint.autoFixOnSave 已经被废弃。使用它会提示更改为 editor.codeActionsOnSave。

而第一种和第三种都可以实现,但是更推荐使用第三种 editor.codeActionsOnSave,它支持更高的可配置性。

使用 editor.codeActionsOnSave 的时候,我们需要禁用其它格式化程序,最好的做法是将 ESlint 设置为格式化程序默认值。并且当我们这么做的时候,我们可以关闭 editor.formatOnSave,否则我们的文件将被修复两次,这是没有必要的。

以下便是我们需要在 setting.json 里新增的配置。

// 编辑的时候检测还是保存的时候检测,默认在编辑的时候就检测。default: onType
// "eslint.run": "onType",

// default: false
// "eslint.format.enable": false,

// default: false
// "editor.formatOnSave": false,

"editor.codeActionsOnSave": {
    
    
  "source.fixAll.eslint": true
},
"[vue]": {
    
    
  "editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
"[javascript]": {
    
    
  "editor.defaultFormatter": "dbaeumer.vscode-eslint"
},

// 始终在VSCode的右下角状态栏显示 ESLint 字样,查看 ESLint 运行状态,确保 ESLint 在正常运行
"eslint.alwaysShowStatus": true,

总结

提示:非原创!!!非原创!!!非原创!!!
转载自:https://mp.weixin.qq.com/s/fR6vKI7TUbueUTCKDTAHVQ

猜你喜欢

转载自blog.csdn.net/weixin_46746389/article/details/124814437