VSCode配合ESLint自动修复格式化
开发Vue或者React的项目的时候,我们经常用到ESLint进行代码的校验,当代码出现不符合规范的格式的时候,ESLint会在控制台提示相关的异常信息。
ESLint极大的提高了团队代码的一致性和规范性,接下来老马介绍一下我的VSCode的相关配置和插件实现保存代码的时候,根据ESLint的配置自动修复代码和格式化。
VSCode安装插件
- ESLint,VSCode代码中提示错误
- vetur:Vue开发的神器,格式化、代码段等不用说了....
- Prettier - Code formatter,代码格式化插件,非常牛,可以自定义格式化的配置
配置VSCode的用户配置
{
...
"vetur.format.defaultFormatter.js": "vscode-typescript",
"vetur.format.defaultFormatter.html": "js-beautify-html",
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "html",
"autoFix": true
},
{
"language": "vue",
"autoFix": true
}
],
// 保存自动修复
"eslint.autoFixOnSave": true,
// jsx自动修复有问题,取消js的format
"editor.formatOnSave": false,
// Enable/disable default JavaScript formatter (For Prettier)
"javascript.format.enable": false,
"prettier.singleQuote": true,
// 点击保存时,根据 eslint 规则自定修复,同时集成 prettier 到 eslint 中
"prettier.eslintIntegration": true,
...
}
注意事项
如果需要启动ESLint的自动修复,需要在项目根目录下,或者package.json文件中配置ESLint的配置。
参考我的Vue项目的ESLint的校验规则:
// .eslintrc.js
// https://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint'
},
env: {
browser: true
},
extends: [
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevent
// ion consider switching to `plugin:vue/strongly-recommended` or
// `plugin:vue/recommended` for stricter rules.
'plugin:vue/essential',
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
'standard'
],
// required to lint *.vue files
plugins: ['vue'],
globals: {
NODE_ENV: false
},
rules: {
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
// 添加,分号必须
semi: ['error', 'always'],
'no-unexpected-multiline': 'off',
'space-before-function-paren': ['error', 'never'],
// 'quotes': ["error", "double", { "avoidEscape": true }]
quotes: [
'error',
'single',
{
avoidEscape: true
}
]
}
};
参考我的React项目的ESLint的校验规则:
需要安装的插件
npm i -D eslint eslint-plugin-flowtype eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react babel-eslint prettier eslint-config-prettier eslint-config-react-app eslint-plugin-prettier
// .eslintrc.js
module.exports = {
root: true,
parserOptions: {
// 检查 ES6 语法
parser: 'babel-eslint',
},
env: {
browser: true,
},
// extending airbnb config and config derived from eslint-config-prettier
// 这里是 vue
extends: ['react-app', 'prettier'], // 选择 eslint 插件
plugins: ["react", "jsx-a11y", "import", 'prettier'], // react
// extends: ['airbnb-base', 'prettier'],
// plugins: ['prettier', 'react'], // 不需要框架
// extends: ['airbnb-base', 'prettier'],
// plugins: ['prettier'], // 自定义 eslint 检查规则
rules: {
// 自定义 prettier 规则 (实际上,可配置项非常有限)
'prettier/prettier': [
'error',
{
singleQuote: true,
trailingComma: 'all',
},
],
camelcase: 'off', // 强制驼峰法命名
'no-new': 'off', // 禁止在使用new构造一个实例后不赋值
'space-before-function-paren': 'off', // 函数定义时括号前面不要有空格
'no-plusplus': 'off', // 禁止使用 ++, ——
'max-len': 'off', // 字符串最大长度
'func-names': 'off', // 函数表达式必须有名字
'no-param-reassign': 'off', // 不准给函数入参赋值 // react 如果在项目中文件名后缀是 .js 而不是 .jsx 避免报错
// "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
// react props validation 错误
// "react/prop-types": 0,
},
};
VSCode配合ESLint自动修复格式化的更多相关文章
- 工作中遇到的vscode配合eslint完成保存为eslint格式
vscode个人设置 // vscode的个人设置配置 { "workbench.iconTheme": "vscode-icons", "workb ...
- vscode vue eslint 快捷键格式化代码
添加vetur , eslint插件 在工作区添加以下代码 "workbench.startupEditor": "welcomePage", &quo ...
- vscode保存代码,自动按照eslint规范格式化代码设置
# vscode保存代码,自动按照eslint规范格式化代码设置 编辑器代码风格一致,是前端代码规范的一部分.同一个项目,或者同一个小组,保持代码风格一致很必要.就拿vue项目来说,之前做的几个项目, ...
- vscode 使用ESLint 自动检查,保存时自动格式化
1:全局安装eslint `npm install -g eslint`2: 打开vscode 点击 “文件”----->“首选项”---->“设置”,在右侧“用户设置/settings. ...
- vscode中eslint插件的配置-prettier
用vue-cli构建vue项目,会有个eslint代码检测的安装 可vscode自带代码格式化是prettier格式(右键有格式化文件或alt+shift+f) 这时候要在vscode上装一个esli ...
- vscode 中 eslint prettier 和 eslint -loader 配置关系
前置 本文将探究 vscode prettier 插件 和 eslint 插件在 vscode 中的配置以及这两者对应的在项目中的配置文件的关系,最后提及 vscode eslint 插件配置与 es ...
- VSCode配置eslint
在Vue.js项目中,使用的是eslint检查. 而在我写完代码后,cnpm run dev运行命令...然后悲剧了,一大堆报错!╮(╯▽╰)╭ 安装插件:Vetur:这是vscode上一个vue.j ...
- VSCode 使用 ESLint + Prettier 来统一 JS 代码
环境: VSCode 1.33.1 Node.js 8.9.1 一.ESLint 1.介绍 ESLint是最流行的JavaScript Linter. Linter 是检查代码风格/错误的小工具.其他 ...
- 在使用 vscode 时 eslint 检测 .vue 文件中的less 部分内容
问题: 在使用 vscode 以及 eslint 来检测 基于 webpack 的 vue-cli 的项目中,eslint 无法检测到 .vue 文件中的less 部分内容. 解答: 1.通过 下载 ...
随机推荐
- TortoiseGit需要重复填写用户名和密码的问题
命令行执行: git config --global credential.helper store 即可
- python开发_stat
当我们使用os.stat(path)获取一个文件(夹)信息的时候, os.stat(path)本身返回的是一个元组如: nt.stat_result(st_mode=33206, st_ino=203 ...
- HDU 1025 LIS二分优化
题目链接: acm.hdu.edu.cn/showproblem.php?pid=1025 Constructing Roads In JGShining's Kingdom Time Limit: ...
- Verilog HDL与C语言的比较
Verilog HDL与C语言的比较 Verilog HDL是在C语言的基础上发展起来的,因而它保留了C语言所独有的结构特点. 为便于对Verilog HDL有个大致的认识,在这里将它与C语言的异 ...
- Notes 20180508 : Java基本程序设计结构之关键字与标识符
我们成功书写了HelloWorld后,又深入了解了main函数,提到过main并非是关键字,可什么又是关键字呢?这其实就是这章要研究的内容,本节研究关键字与标识符,在标识符中我们也会讲解一下Java中 ...
- WARNING OGG-01519
2019-02-14 05:13:09 WARNING OGG-01519 Waiting at EOF on input trail file /home/u01/app/ogg/dirdat/ ...
- 撩课-Web大前端每天5道面试题-Day6
1.请说明ECMAScript, JavaScript, Jscript之间的关系? ECMAScript提供脚本语言必须遵守的规则. 细节和准则,是脚本语言的规范. 比如:ES5,ES6就是具体的一 ...
- linux 用时间创建文件夹
命令: mkdir `date +%Y%m%d%H%M%S`
- 经典算法--冒泡排序(Java)
原理:将相邻元素的较大值赋给右边 思路:① 1.将集合或数组内的第一个元素与第二个元素进行比较,较大值赋给右边: 2.将第二个元素与第三个元素进行比较,较大值赋给右边: ....... (N-1).将 ...
- 【转载】C++创建对象的两种方法
原文:http://blog.sina.com.cn/s/blog_586b6c050100dhjg.html 在C++里,有两种方法创建对象: 方法一: ClassName object(param ...