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

2023-11-09

提示:本文展示了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这款强大的工具最终达到了文章自己想要的效果,如有问题可评论或与我进行联系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vscode的eslint配置保存自动修复代码 的相关文章

随机推荐

  • scipy.sparse使用简例

    CDIMC Net 1 中有个对整个数据集求 kNN 图的函数 get kNNgraph2 2 是用 dense 的 numpy ndarray 存的 空间复杂度 O n 2 O n 2
  • HBuilder 制表符转换成空格

    在学习BootStrap时 看到 编码规范 by mdo 里面有一条关于编辑器配置的 用两个空格代替制表符 soft tab 即用空格代表 tab 符 避免常见的代码不一致和差异 然后找到了 HBuilder 制表符转换成空格 的方法 具体
  • Linux环境SVN用户权限修改

    1 查看SVN配置文件位置 系统环境 Linux 3 10 0 使用命令行查看SVN进程 ps ef grep svn 通过进程信息可以看到svnserve conf存放的目录 svnserve conf是svn配置文件 vim 目录 sv
  • OpenHarmony与HarmonyOS联系与区别

    目录 1 背景 2 OpenHarmony 3 HarmonyOS 4 鸿蒙生态 5 OpenHarmony与HarmonyOS的技术上实现区别 1 语言支持 2 SDK 的不同 3 运行调测方式不同 4 对APK的兼容性不同 5 包含关系
  • Android CheckBox 多选以及反选清除已选项

    前言 疫情随着这个春天的到来已悄然离去 你还记得填写问卷调查的那个时候么 话不多少 这篇文章要实现的就是一个问卷调查列表 即 Listview 嵌套 Listview 实现 checkbox 多选以及反选清除已选项 正文 思路就是定义一个
  • web服务选择lighttpd,采用fcgi组件技术扩展处理业务层

    目录 一 简介fcgi web和web服务器间数据传输的桥梁 2 二 源码编译配置ARM Lighttpd Fastcgi C 3 1 交叉编译 源文件都从官网下载 Fcgi lighttpd zlib 3 2 配置服务器server do
  • VMware上安装虚拟机的一些注意事项和VMware tools的安装

    VMware上安装虚拟机 VMware是windows上的一个应用程序 它可以虚拟出一个物理主机 pc机 在该虚拟机上可以安装linux系统 相关安装流程csdn上参考过多 这里不再赘述 虚拟机安装位置要求 1 不能和VMware放在同一个
  • 为AI而生的数据库:Milvus详解及实战

    1 向量数据库 1 1 向量数据库的由来 在当今数字化时代 人工智能AI正迅速改变着我们的生活和工作方式 从智能助手到自动驾驶汽车 AI正在成为各行各业的创新引擎 然而 这种AI的崛起也带来了一个关键的挑战 如何有效地处理和分析越来越丰富和
  • QSetting读取ini配置文件失败

    今天碰到一个问题 QSettings读取配置文件失败 同样的代码用5 13版本编译后读取正常 用5 7版本编译读取不到 排除了文件编码格式的问题 最终问题解决了 原因没有找到 解决方法是试错试出来的 解决方法是把相对路径换成了绝对路径 问题
  • 常见中间件漏洞复现

    目录 Tomcat 1 Tomcat 文件上传 CVE 2017 12615 2 Tomcat 代码执行 CVE 2020 1938 3 Tomcat弱口令登录获取后台 Weblogic 4 Weblogic反序列化漏洞获取服务器权限 CV
  • Vuex4(Module)+Typescript的基本使用

    一 Vuex4介绍 vuex 是一个专为 Vue js 应用程序开发的状态管理模式 库 它采用集中式存储管理应用的所有组件的状态 并以相应的规则保证状态以一种可预测的方式发生变化 vuex包括五大核心概念分别是State Getter Mu
  • Sql server 千万级大数据SQL查询优化的几点建议

    1 对查询进行优化 应尽量避免全表扫描 首先应考虑在 where 及 order by 涉及的列上建立索引 2 应尽量避免在 where 子句中对字段进行 null 值判断 否则将导致引擎放弃使用索引而进行全表扫描 如 select id
  • 应“云”而生的云数据库,让数据从“江河”到“大海”

    随着信息技术的发展 互联网应用的加速普及 人类进入了数字经济时代 进入二十一世纪以后 随着移动互联网技术 物联网技术 5G等技术的发展 全球数据圈 Global Datasphere 呈指数级递增 IDC预测全球数据将于2025年增长至17
  • [USACO Dec20 Bronze]Stuck in a Rut

    Farmer John 最近扩大了他的农场 从奶牛们的角度看来这个农场相当于是无限大了 奶牛们将农场上放牧的区域想作是一个由正方形方格组成的无限大二维方阵 每个方格中均有美味的草 将每个方格看作是棋盘上的一个方格 Farmer John 的
  • RANSAC算法实现图像全景拼接

    文章目录 一 全景拼接的原理 1 RANSAC算法介绍 2 使用RANSAC算法来求解单应性矩阵 3 拼接图像 二 全景拼接实验 1 针对固定点位拍摄多张图片 以中间图片为中心 实现图像的拼接融合 1 输入图片 2 代码 3 运行结果 4
  • 单向链表双向链表优缺点

    单向链表优缺点 1 优点 单向链表增加删除节点简单 遍历时候不会死循环 2 缺点 只能从头到尾遍历 只能找到后继 无法找到前驱 也就是只能前进 双向链表优缺点 1 优点 可以找到前驱和后继 可进可退 2 缺点 增加删除节点复杂 多需要分配一
  • 陈嘉哲:黄金原油跳水承压,日内或将延续,如何操作?附操作建议

    陈嘉哲 7 6黄金原油跳水承压 日内有望继续下行 如何操作 附操作建议 无论行情暴涨 暴跌 单边还是震荡 你是不是总是没把握住 就是所谓的一买就跌 一跌就割 一割就涨 一涨就追 一追又套 一套再割 这就像一个死套 资金不断的缩水 过程一直在
  • 银保监局315再点名元宇宙炒作,又见监管难题,立法是否当务之急

    3月15日 北京银保监局发布 理性消费不乱贷 美好青春不负债 风险提示指出 目前网络上出现一些 小游戏 假借 元宇宙 区块链 等概念进行炒作 这是继2月18日银保监会发布 关于防范以 元宇宙 名义进行非法集资的风险提示 后 监管部门再次点名
  • 6种常用开源协议介绍

    为什么要有开源协议呢 其一 保护原作者的知识成果 防止被恶意利用 开源协议中一般都包含有免责声明 可以防止原作者承担相应风险和后果 比如你开源了一个破解Windows秘钥的软件 而使用者却用来进行商业资料窃取 那么你是不需要为此承担责任的
  • vscode的eslint配置保存自动修复代码

    提示 本文展示了vue项目中配置eslint 在vscode编辑器中保存后可以自动修复 文章目录 前言 一 vscode配置 二 vue项目package json中与eslint相关的配置 总结 前言 本次配置达到的效果 vue代码格式有