文章目录
- 前言
- 1. ESLint 支持几种格式的配置文件
- 2. ESLint的数字代表
- 3. VSCode 默认格式化配置
- 4. Prettier 配置
- 5. 如何解决 ESLint 与 Prettier 冲突?
- 6. 友情链接
前言
作为一个开发人员,代码不好看可咋办?经常看到别人的代码一团糟,编译器右侧都是红点……
我们心里也是非常抓狂的……为什么维护的是我?
别慌,慢慢来~
首先,我们可以配置一些工具,帮助我们养成良好的编码习惯。
然后,熟练使用!这样编码风格就养成啦!
温馨提示:要安装好eslint扩展程序后再进行配置~
可以辅助安装 Prettier 进行代码风格管理。
配置文件可以是js文件,也可以是json文件,语法不同而已。
不能盲目的复制其他配置项,要看自己项目安装了哪些,以及是否需要。
- ESLint:语法检测工具
- Prettier:代码风格控制工具
看到如下代码会不会感觉好很多?特别整齐,没有爆红!
我这里配置的是TabSize=4,团队开发风格,没办法,咱也可以设置2个空格缩进哈。
1. ESLint 支持几种格式的配置文件
2. ESLint的数字代表
“off” 或 0 - 关闭规则
“warn” 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
“error” 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)
参考我的配置(.eslintrc.js
):
module.exports = {env: {browser: true,es6: true,node: true,},extends: ['eslint:recommended', 'plugin:react/recommended'],plugins: ['react'], // 这里增加prettier插件。globals: {Atomics: 'readonly',SharedArrayBuffer: 'readonly',},// parser: "@typescript-eslint/parser",parserOptions: {ecmaVersion: 'latest',sourceType: 'module',ecmaFeatures: {jsx: true,},},rules: {'prettier/prettier': 'error', // prettier 检测到的标红展示'javascript.validate.enable': 1,// 禁止定义不使用的变量'no-unused-vars': 2,// suppress errors for missing 'import React' in files'react/react-in-jsx-scope': 'off',// allow jsx syntax in js files (for next.js project)'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx'] }], //should add ".ts" if typescript project'react/prop-types': 'off',indent: ['warn', 2],},
};/**"off" 或 0 - 关闭规则"warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)"error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)*/
3. VSCode 默认格式化配置
如图:可以选择用prettier
或者eslint
等默认格式化。
4. Prettier 配置
vscode中的格式化可以按第3点进行配置,我一般用的prettier
,一款很好的代码格式化插件,可自行安装。
它的默认格式化快捷键是:Alt + Shift + F
(Windows)、shift + option + F
(Mac)。配置文件:.prettierrc.js
module.exports = {singleQuote: true,semi: true, // 使用分号, 默认trueuseTabs: false, // 使用tab缩进,默认falsetabWidth: 4, // tab缩进大小,默认为4或2arrowParens: 'always', // 箭头函数参数括号 默认avoid。avoid 能省略括号的时候就省略 例如x => x,always 总是有括号bracketSpacing: true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"printWidth: 100, // 一行的字符数,如果超过会进行换行,默认为80 trailingComma: 'none'// 去掉末尾的逗号
};
配置好之后重启编译器。以后编码完按快捷键,就可以自动按照改规则格式化啦!亲测有效!
使用 Prettier :
// 格式化所有文件
npx prettier --write .// 格式化app目录下的所有文件
prettier --write app/
5. 如何解决 ESLint 与 Prettier 冲突?
在代码格式化时采用Perttier
规则,而我们代码校验使用的是ESLint
,如果同一个规则配置不一致,往往就会出现冲突问题;
比如:字符串单、双引号的配置,Eslint
把字符串变成单引号,再次编辑文件后,Prettier
自动格式化后却又变成双引号,导致代码校验异常。
解决方式一:要么修改 eslintrc,要么修改 prettierrc 配置,让它们配置保持一致;
解决方式二:禁用 ESLint中和Prettier配置有冲突的规则;再使用 Prettier 来替代 ESLint 的格式化功能;
npm i eslint-plugin-prettier eslint-config-prettier -D
再配置 .eslintrc.js
:
module.exports = {extends: [require.resolve('@hb/codestyle-linter/rcs/eslintrc.js'),'prettier'],rules: {},
};
这两个包配合使用,可以达到运行 eslint --fix 时,采用Prettier的配置规则 来格式化文件。
6. 友情链接
(1)ESLint官网,可参考配置。
可以在这里搜索,如图所示:
看不懂的地方可以评论区讨论。
(2)关于我在eslint 配置中遇到的 问题。
(3) Prettier官网。