vscode的eslint配置保存自动修复代码

提示:本文展示了vue项目中配置eslint,在vscode编辑器中保存后可以自动修复


前言

本次配置达到的效果:vue代码格式有问题会根据插件的eslint规则红色波浪线提示、ctrl+s保存后根据波浪线的规则进行代码修复(包括自动删除尾部逗号等)
vue项目配置eslint,vscode下载的eslint插件,与npm下载eslint插件有各种冲突,导致如vscode编辑器格式化以后会有一大堆红色波浪线等问题,下面我列出我的相关配置,可以供参考。


一、vscode配置

vscode安装的插件
在这里插入图片描述
在这里插入图片描述
vscode的settings.json的相关配置项
1.打开配置文件方法:文件->首选项->设置->输入框输入settings
在这里插入图片描述

2.下面是settings.json的配置
以下列出我完整的配置,主要是搜索关键词eslint、editor,若是嫌麻烦,可以备份自己的配置后,直接把这个配置替换

{
  "beautify.language": {
      "js": {
          "type": [
              "javascript",
              "json",
              "jsonc"
          ],
          "filename": [
              ".jshintrc",
              ".jsbeautifyrc"
          ]
      },
      "css": [
          "css",
          "less",
          "scss"
      ],
      "html": [
          "htm",
          "html",
          "vue"
      ]
  },
  "workbench.colorTheme": "Dracula At Night",
  "workbench.iconTheme": "vscode-icons",
  "vsicons.dontShowNewVersionMessage": true,
  "[vue]": {
    "editor.defaultFormatter": "octref.vetur",
    "editor.codeActionsOnSave": {
      "source.fixAll.eslint": true
    }    
  },
  "[javascript]": {
    "editor.defaultFormatter": "octref.vetur",
    "editor.codeActionsOnSave": {
      "source.fixAll.eslint": true
    }       
  },
  "[html]": {
      "editor.defaultFormatter": "HookyQR.beautify"
  },
  "eslint.codeAction.showDocumentation": {
      "enable": true
  },
  "workbench.iconTheme": "material-icon-theme",
  "explorer.confirmDragAndDrop": false,
  "explorer.confirmDelete": false,
  //配置eslint
  "eslint.enable": true, //  启用保存时自动修复,默认只支持.js文件
  "eslint.validate": [
      "javascript",
      //  用eslint的规则检测js文件
      {
          "language": "vue", // 检测vue文件
          "autoFix": true //  为vue文件开启保存自动修复的功能
      },
      {
          "language": "html",
          "autoFix": true
      },
  ],
  "cSpell.enabledLanguageIds": [
      "asciidoc",
      "c",
      "cpp",
      "csharp",
      "css",
      "git-commit",
      "go",
      "graphql",
      "handlebars",
      "haskell",
      "html",
      "jade",
      "java",
      "javascript",
      "javascriptreact",
      "json",
      "jsonc",
      "jupyter",
      "latex",
      "less",
      "markdown",
      "php",
      "plaintext",
      "python",
      "pug",
      "restructuredtext",
      "rust",
      "scala",
      "scss",
      "text",
      "typescript",
      "typescriptreact",
      "yaml",
      "yml",
      "vue"
  ],
  "diffEditor.ignoreTrimWhitespace": false,
  "alias-skip.mappings": {
      "~@/": "/src",
      "views": "/src/views",
      "assets": "/src/assets",
      "network": "/src/network",
      "common": "/src/common"
  },
  "tabnine.experimentalAutoImports": true,
  "editor.bracketPairColorization.enabled": true,
  "editor.guides.bracketPairs": "active",
  "bracketPairColorizer.depreciation-notice": false,
  "editor.tabSize": 2,
  "editor.detectIndentation": false,
  "cSpell.customDictionaries": {
    "custom-dictionary-user": {
      "name": "custom-dictionary-user",
      "path": "~/.cspell/custom-dictionary-user.txt",
      "addWords": true,
      "scope": "user"
    }
  },
  "editor.foldingStrategy": "indentation",
  "git.mergeEditor": false,
  "[css]": {
    "editor.defaultFormatter": "stylelint.vscode-stylelint"
  },
  "remote.SSH.remotePlatform": {
    "192.168.10.31": "linux"
  },
  "cSpell.languageSettings": [],
  "vetur.ignoreProjectWarning": true,
  "settingsSync.keybindingsPerPlatform": false,
  "eslint.migration.2_x": "off",
  "eslint.autoFixOnSave": true,
  "eslint.codeActionsOnSave.rules": null,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": false
  },
  "editor.fontLigatures": null,
  "pathAlias.aliasMap": {
    "@": "${cwd}/src"
  },
  // 保存时格式化
  "editor.formatOnSave": true,//保存时格式化  
  // 让vue中的js按编辑器自带的ts格式进行格式化 
  "vetur.format.defaultFormatter.js": "vscode-typescript",
  //vue的模板文件中的 html 使用自带的 js-beautify-html 进行格式化
  "vetur.format.defaultFormatter.html": "js-beautify-html", 
  // 让函数(名)和后面的括号之间加个空格
  "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
  "vetur.format.defaultFormatterOptions": {
    // 让html的attributes不换行,看起来会更美观
    "js-beautify-html":{
      "wrap_line_length": 240,
      "wrap_attributes": "auto",
      "end_with_newline": false
    },  
    "prettier": {
      //设置分号
      "semi": true,
      //双引号变成单引号
      "singleQuote": true,
      //禁止随时添加逗号,这个很重要。找了好久
      "trailingComma": "none"
    }
  },
  "[javascript]": {
    "editor.formatOnSave": true
  },
  "[html]": {
    "editor.formatOnSave": false
  }  
}

二、vue项目package.json中与eslint相关的配置

{
	"@vue/cli-plugin-eslint": "~4.5.0",
	"@vue/eslint-config-standard": "^5.1.2",
	"babel-eslint": "^10.1.0",
	"eslint": "^6.7.2",
	"eslint-plugin-import": "^2.20.2",
	"eslint-plugin-node": "^11.1.0",
	"eslint-plugin-promise": "^4.2.1",
	"eslint-plugin-standard": "^4.0.0",
	"eslint-plugin-vue": "^6.2.2",
	"eslintConfig": {
	  "root": true,
	  "env": {
	    "node": true
	  },
	  "extends": [
	    "plugin:vue/essential",
	    "@vue/standard"
	  ],
	  "parserOptions": {
	    "parser": "babel-eslint"
	  },
	  "rules": {},
	  "globals": {
	    "utils": true
	  }
	}
}

至于每个插件的作用,大家善用各种搜索工具,以下是一个简单的插件简介:
在这里插入图片描述


总结

本次问题解决参考了网上的多篇文章以及chatgpt这款强大的工具最终达到了文章自己想要的效果,如有问题可评论或与我进行联系。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用VSCode配合ESLint自动修复格式化Vue3或React代码,需要按照以下步骤操作: 1. 在VSCode中安装ESLint插件和Prettier插件。 2. 在项目根目录下安装ESLint和Prettier依赖包。 3. 在项目根目录下创建.eslintrc.js文件,并配置ESLint规则。 4. 在VSCode的设置中,将"editor.formatOnSave"设置为true,以便在保存文件时自动格式化代码。 5. 在VSCode的设置中,将"eslint.validate"设置为"onSave",以便在保存文件时自动运行ESLint检查。 6. 在VSCode的命令面板中,选择"ESLint: Fix all auto-fixable Problems",以自动修复ESLint检查出的问题。 7. 在VSCode的命令面板中,选择"Prettier: Format Document",以自动格式化代码。 通过以上步骤,就可以使用VSCode配合ESLint自动修复格式化Vue3或React代码了。 ### 回答2: VSCode 是一款功能强大的现代化代码编辑器,它支持多种语言和框架,如 Vue3 和 React。同时,它也支持集成 ESLint 插件,以帮助我们检测并自动修复代码规范和格式问题。在该环境中配合 ESLint 自动修复格式化非常简单,下面将为大家介绍具体操作步骤。 首先,我们需要在 VSCode 中搜索并安装 ESLint 插件。安装完毕后,我们可在左侧的“Extensions”面板中看到它。 接着,在项目的根目录下初始化一个新的 eslint 配置文件,运行以下命令: ``` npm install eslint --save-dev ./node_modules/.bin/eslint --init ``` 其中eslint --init命令将会进入eslint配置向导并根据你的需求自动生成.eslintrc.* 配置文件, 这里的 `—save-dev` 参数意味着将 eslint 安装为开发依赖。同时,我们还需要使用npm/yarn 以安装eslint插件的规则依赖,这里以使用 airbnb 的规则为例: ``` npx install-peerdeps --dev eslint-config-airbnb-base ``` 然后,我们需要在 VSCode 首选项中启用 ESLint 插件,并选择自动保存文件时执行 ESLint 格式化功能。为了实现这个目标,我们需要按照以下步骤: - 打开 VSCode 首选项(Preferences)并搜索“eslint”。 - 在搜索结果中选择“ESLint > Auto Fix On Save”选项并将其勾选上。 image 这样,当我们编写 Vue3 或 React 代码时,ESLint自动纠正一些常见的语法和格式问题。一些错误内容比如缩进、括号空格等都会自动得到修复和统一。如果确实存在无法自行修复的问题,我们仍然可以在编辑器中看到它们。在这种情况下,我们需要自行解决问题或查看 ESLint 文档以了解如何解决错误。 综上所述,通过使用 ESLint 工具和 VSCode 编辑器的自动保存功能,我们可以更轻松地维护我们的代码质量和统一性。它可以帮助我们避免格式错误和其他常见的代码问题,确保我们的代码遵循最佳实践,并更加易于阅读和维护。 ### 回答3: VS Code 是一款非常流行的代码编辑器,支持很多功能强大的扩展插件,其中一个非常实用的插件就是 ESLint 自动修复格式化插件。对于 Vue.js 3 或 React 项目的开发者来说,这个插件是非常有用的。 首先,我们要安装 VS Code 上的 ESLint 插件,然后在项目中使用 npm 或 yarn 安装 ESLint: ``` npm install eslint --save-dev ``` 或 ``` yarn add eslint --dev ``` 然后,我们可以在项目根目录下创建一个 `.eslintrc.js` 配置文件,来配置 ESLint 的规则和插件。在 Vue.js 3 项目中,我们可以使用 `@vue/eslint-config` 来设置规则,而在 React 项目中,我们可以使用 `eslint-config-react-app`。配置文件大概长成这样: ``` module.exports = { root: true, env: { browser: true, node: true, es2021: true, }, extends: [ 'plugin:vue/vue3-recommended', 'eslint:recommended', ], parserOptions: { ecmaVersion: 12, sourceType: 'module', }, plugins: [ 'vue', ], rules: { // add your custom rules here }, } ``` 我们可以根据项目需要,自定义 ESLint 的规则和插件。配置好了之后,我们就可以在 VS Code 中使用 ESLint 插件了。 在 VS Code 中打开 Vue.js 3 或 React 项目后,我们可以看到编辑器左下角会出现一个 ESLint 的标志,这表示 VS Code 已经启用了 ESLint 插件。当我们写代码时,如果发现代码出现了 ESLint 的错误或警告,我们只需要将鼠标悬停在出错的地方,就可以看到具体的提示信息。 此时,我们可以使用 VS Code 的快捷键 `Ctrl + .` 或 `Cmd + .`来打开 Quick Fix 菜单,然后选择 "Fix this" 或 "Fix all" 选项,来让 VS Code 自动修复代码中的 ESLint 错误和警告。这个操作非常方便,可以帮助我们快速修复代码中的问题并保持代码风格一致。 总的来说,VS Code 配合 ESLint 自动修复格式化的功能能够大大提高开发效率,降低出错几率,值得我们掌握和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值