vscode 使用eslint(保存自动格式化)

本文介绍如何在项目中配置ESLint以实现代码规范检查,并在VSCode中集成ESLint和Vetur插件,自动格式化代码。涵盖ESLint规则设置、vscode配置及保存时自动格式化的实现。

前提:在package.json中安装了eslint的依赖

1.在项目跟目录添加.eslintrc.js 文件

// https://cn.eslint.org/docs/rules/
// 
/*
 * "off"或者0,不启用这个规则
 * "warn"或者1,出现问题会有警告
 * "error"或者2,出现问题会报错
 */

module.exports = {
  root: true, //此项是用来告诉eslint找当前配置文件不能往父级查找
  env: { //环配置 如 "browser": true, node: true,
    node: true,
  },
  extends: [
    'plugin:vue/essential',
    '@vue/airbnb',
  ],
  rules: {
    'array-callback-return': 1, //return 后面是否允许省略
    "arrow-parens": ["error", "as-needed"], // 箭头函数的参数可以不使用圆括号
    'consistent-return': 0, //要求 return 语句要么总是指定返回的值,要么不指定
    'camelcase': 0, //强制驼峰法命名
    'eqeqeq': 0, //强制全等( === 和 !==)
    'func-names': 0, //函数表达式必须有名字
    "global-require": 0, // 取消对require的验证,使得可以使用require来加载图片的相对路径
    "import/no-unresolved": 0, // 取消自动解析路径,以此开启alias的别名路径设置
    'import/extensions': 0, // 取消对文件扩展名的验证
    'indent': 'off', //缩进风格(强制使用一致的缩进)
    "linebreak-style": 0, // 取消换行符\n或\r\n的验证()
    'max-len': 0, //字符串最大长度
    "no-unused-vars": 1, //禁止出现未使用过的变量
    "no-redeclare": 1, //禁止多次声明同一变量
    'no-use-before-define': 1, //禁止在变量定义之前使用它们
    "no-unused-expressions": 0, // 允许使用未使用过的表达式,以此来支持a && a()的代码形式
    'no-restricted-syntax': 1, //禁用特定的语法
    'no-plusplus': 1, //禁止使用++,--
    'no-underscore-dangle': 0, // 允许在标识符中使用下划线
    'no-param-reassign': 0, // 禁止对 function 的参数进行重新赋值
    'no-nested-ternary': 0, // 禁止嵌套三元表达式
    'no-else-return': 0, //禁止 if 语句中 return 语句之后有 else 块
    'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
    'no-shadow': [1, { //外部作用域中的变量不能与它所包含的作用域中的变量或参数同名
      "allow": ["resolve", "reject", "done", "cb"]
    }],
    'prefer-rest-params': 1, //要求使用剩余参数而不是 arguments
    'prefer-arrow-callback': 0, //要求回调函数使用箭头函数
    'prefer-const': 1, //首选const
    "semi": false, // 使用分号, 默认true
    "singleQuote": true, // 使用单引号, 默认false(在jsx中配置无效, 默认都是双引号)
    "tabWidth": 4, // tab缩进大小,默认为4
    'template-curly-spacing': 'off', //要求或禁止模板字符串中的嵌入表达式周围空格的使用
  },
  parserOptions: {
    parser: 'babel-eslint',
  },
};

更多配置详见https://eslint.bootcss.com/docs/rules

2.在vscode中添加eslint和vetur插件

3.配置保存时按eslint规则自动格式化

编辑vscode配置文件

添加如下配置

 

  // 每次保存的时候自动格式化 旧版本配置
  //"editor.formatOnSave": true,
  // 每次保存的时候将代码按eslint格式进行修复
  //"eslint.autoFixOnSave": true,
  // 添加 vue 支持
  //"eslint.validate": [
  ////  "javascript",
  //  "javascriptreact",
  //  {
   //   "language": "html",
  //    "autoFix": true
  //  },
  //  {
  //    "language": "vue",
  //    "autoFix": true
  //  }
  //]
  //新版本配置
  "editor.codeActionsOnSave": {
		"source.fixAll.eslint": true
	},
	"eslint.format.enable": true,

注意:这里的配置你需要注意自己eslint版本

可以看下eslint的详细说明,有如图的配置说明,就使用新版本的配置

这样配置完成后保存文件时就会自动格式化了 

VSCode 中配置 ESLint 保存自动修复代码,可以通过修改 `settings.json` 文件实现。以下是具体配置步骤和内容: 1. **启用保存自动修复功能** 在 `settings.json` 文件中添加以下配置,以启用保存自动修复 ESLint 错误的功能: ```json { "eslint.autoFixOnSave": true } ``` 此配置确保在保存文件时,ESLint自动修复可以修复的错误 [^1]。 2. **配置 `editor.codeActionsOnSave` 以支持自动修复** 添加以下代码块,以确保编辑器在保存时执行 ESLint自动修复功能: ```json { "editor.codeActionsOnSave": { "source.fixAll.eslint": true } } ``` 这项配置将确保保存时执行 ESLint 的所有自动修复规则 [^1]。 3. **支持多语言文件的自动修复** 如果项目包含多种语言文件(如 `.vue`、`.html` 等),可以通过以下配置扩展 ESLint 的检测范围: ```json { "eslint.validate": [ "javascript", { "language": "vue", "autoFix": true }, { "language": "html", "autoFix": true } ] } ``` 该配置允许 ESLint 在 Vue 和 HTML 文件中检测错误并自动修复 [^4]。 4. **其他可选配置** 如果需要进一步优化体验,可以添加以下设置以关闭不必要的提示: ```json { "explorer.confirmDelete": false } ``` 这将禁用删除文件时的确认提示 [^4]。 --- ### 完整示例配置 将以下内容复制到 `settings.json` 文件中,以实现保存自动修复 ESLint 错误,并支持多语言文件的格式化: ```json { "explorer.confirmDelete": false, "eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", { "language": "vue", "autoFix": true }, { "language": "html", "autoFix": true } ], "editor.codeActionsOnSave": { "source.fixAll.eslint": true } } ``` 通过以上配置,VSCode保存文件时会根据 ESLint 的规则自动修复代码中的错误,同时支持 `.js`、`.vue` 和 `.html` 等多种文件格式 [^4]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值