vscode保存代码时自动ESLint格式化(支持vue)

一、问题描述

在开发项目的时候,往往我们会配置ESLint的代码规范。而我们在实际开发过程中,每次出现代码格式问题都去手动修改是非常麻烦的(比如双引号改成单引号;缩进问题;句尾分号、逗号等),而通过配置vscode在保存时去自动修改这些简单的代码规格是非常必要也非常方便的!

二、项目配置方案
2.1 安装eslint插件

在这里插入图片描述

2.2 修改用户配置

ctrl + shift + p => 首选项:打开工作区设置
在打开的配置文件中添加以下内容:

{
    "eslint.autoFixOnSave": true,
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        {
            "language": "html",
            "autoFix": true
        },
        {
            "language": "vue",
            "autoFix": true
        }
    ],
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }
}

解释:
eslint.autoFixOnSave:用来进行保存时自动格式化,但是默认只支持 javascript .js 文件;
eslint.validate 用来配置作用的文件类型`

2.3 缺点

该种方式是针对项目级配置,每次新建项目都需要重新配置一下!
配置成功后再项目目录下会产生 => .vscode / settings.json 文件
一个文件中有多处修改时,保存一次可能不会将全部修改全部自动化修改,这时我们手动多保存几次即可!!!

三、vscode全局配置方案
1. 文件 => 首选项 => 设置:搜索setting

在这里插入图片描述

2. 在打开的 vscode 配置文件settings.json中,添加以下ESLint相关配置
// #每次保存的时候自动格式化
"editor.formatOnSave": true,
// #每次保存的时候将代码按eslint格式进行修复
"editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
},
//  #去掉代码结尾的分号
"prettier.semi": false,
//  #让函数(名)和后面的括号之间加个空格
// "javascript.format.insertSpaceBeforeFunctionParenthesis": true,


"files.autoSave": "afterDelay",
"javascript.referencesCodeLens.enabled": true,
"git.enabled": true,
"[typescript]": {
  "editor.defaultFormatter": "vscode.typescript-language-features"
},
"[less]": {
  "editor.defaultFormatter": "HookyQR.beautify"
},
"tslint.jsEnable": true,
// "workbench.colorTheme": "Monokai Dimmed",
"[html]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"typescript.updateImportsOnFileMove.enabled": "always",
"explorer.confirmDragAndDrop": false,
"[javascript]": {
  "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
  "editor.defaultFormatter": "HookyQR.beautify"
},
"[json]": {
  "editor.defaultFormatter": "HookyQR.beautify"
},
"npm.enableScriptExplorer": true,
"editor.tabCompletion": "on",
"prettier.singleQuote": true,
"prettier.tabWidth": 2,
"prettier.printWidth": 1000,
"vetur.format.defaultFormatterOptions": {
  "js-beautify-html": {
    "tabWidth": 2,
    "wrap_attributes": "auto",
    "wrap-line-length": 1000,
  },
  "prettier": {
    "semi": true,
    "singleQuote": true
  },
  "prettyhtml": {
    "printWidth": 1000,
    "singleQuote": false,
    "wrapAttributes": false,
    "sortAttributes": false
  }
},
"vetur.format.options.useTabs": false,
"vetur.format.options.tabSize": 2,
"vetur.format.scriptInitialIndent": true,
"vetur.format.defaultFormatter.html": "js-beautify-html",
// 按照什么规范去格式化js, prettier/prettier-eslint 会在句末自动添加分号,但遇到then,catch等链式调用时会自动换行
// "vetur.format.defaultFormatter.js": "js-beautify-html",
"vetur.format.defaultFormatter.js": "vscode-typescript",   // none/prettier/prettier-eslint/vscode-typescript
"vetur.format.defaultFormatter.less": "prettier",
"css.lint.duplicateProperties": "warning",
"emmet.triggerExpansionOnTab": false,
"vetur.format.styleInitialIndent": true,
"vetur.format.defaultFormatter.css": "prettier",
"vetur.format.defaultFormatter.postcss": "prettier",
"vetur.format.defaultFormatter.scss": "prettier",
"vetur.format.defaultFormatter.sass": "sass-formatter",
"vetur.format.defaultFormatter.stylus": "stylus-supremacy",
"vetur.format.defaultFormatter.ts": "prettier",
"files.associations": {
  "*.cjson": "jsonc",
  "*.wxss": "css",
  "*.wxs": "javascript",
  "*.vue": "vue",
  "*.nvue": "vue"
},
"emmet.includeLanguages": {
  "wxml": "html"
},
"minapp-vscode.disableAutoConfig": true,
"vetur.validation.template": false,
"task.slowProviderWarning": [
  "typescript"
],
"[vue]": {
  "editor.defaultFormatter": "octref.vetur"
},
"[css]": {
  "editor.defaultFormatter": "HookyQR.beautify"
},
"[scss]": {
  "editor.defaultFormatter": "HookyQR.beautify"
},
"editor.rulers": [],
"terminal.integrated.automationProfile.windows": null,
"window.zoomLevel": 1,
"editor.renderWhitespace": "all",
"editor.autoIndent": "advanced",
"explorer.confirmDelete": false,
"html.format.wrapAttributes": "aligned-multiple",
"editor.semanticTokenColorCustomizations": {},
"http.proxyAuthorization": null,
"editor.detectIndentation": false,
"editor.tabSize": 2,
"[yaml]": {
  "editor.insertSpaces": true,
  "editor.tabSize": 2,
  "editor.autoIndent": "advanced"
},
"tabnine.experimentalAutoImports": true,
3. 优缺点

优点:可作用于任何项目,不要单独配置
缺点:配置较为笼统,多为常规配置,如果想要严格使用ESLint规范代码,最好还是在项目中集成 eslint 并配置 .eslintrc.js

四、其他使用技巧
1. 忽略部分ESLint校验
You may use special comments to disable some warnings.
Use // eslint-disable-next-line to ignore the next line.
Use /* eslint-disable */ to ignore all warnings in a file.

----------------------------------- 分割线 -------------------------------------
您可以使用特殊注释来禁用(忽略)某些警告。  
使用  // eslint-disable-next-line 忽略下一行的ESLint校验  
使用 /* eslint-disable */ 忽略文件中的所有ESLint校验。  
2. 打开浏览器的错误提示蒙层

方法:在vue.config.js配置eslint-loader相关。

chainWebpack: config => {
    // ESLint 强制校验,开启后如果ESLint校验不通过,则运行不起来。错误也将显示在浏览器页面上
    config.module
      .rule('eslint')
      .include.add(path.resolve(__dirname, './src')).end()
      .exclude.add(path.resolve(__dirname, './src/assets')).end()
      .exclude.add(path.resolve(__dirname, './src/styles')).end()
      .exclude.add(path.resolve(__dirname, './dist')).end()
      .use('eslint')
      .loader('eslint-loader')
      .tap(options => options);
  },


文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出!

  • 13
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: VSCode可以通过安装插件来实现Vue代码ESLint格式化。 首先,在VSCode中打开扩展面板(快捷键为Ctrl + Shift + X),搜索并安装"ESLint"插件。安装完成后,重新加载VSCode。 接下来,在项目的根目录下找到并打开".eslintrc.js"文件,确保已按照项目需求正确配置了ESLint规则。如果没有该文件,则需要手动创建一个。在文件中,可以添加、修改或删除适用的规则。例如,可以配置规则来检查和自动修复代码中的缩进、引号等问题。 然后,在VSCode的设置中,搜索"eslint.autoFixOnSave"选项,并将其设置为true。这会在保存文件自动运行ESLint,并尝试修复代码中的格式问题。此外,还可以设置"eslint.validate"选项来指定在保存文件进行ESLint验证的文件类型。对于Vue项目,可以将其配置为"vue",以确保在保存Vue文件进行ESLint验证。 最后,在Vue代码文件中,可以根据需要手动触发ESLint格式化。可以使用快捷键(在Windows下为Shift + Alt + F,在Mac下为Shift + Option + F),或者右键点击编辑器空白处,选择"Format Document"选项来格式化当前文件。 总结起来,要在VSCode中进行Vue代码ESLint格式化,需要先安装并配置ESLint插件,更新VSCode设置以自动修复问题,在需要手动触发格式化操作。这样可以有效地帮助我们遵循代码规范,提高代码质量。 ### 回答2: 在VSCode中使用Vue框架进行开发,可以借助ESLint格式化代码,以保持代码的一致性和可读性。 首先,在VSCode的插件商店中搜索并安装ESLint插件。然后,在项目的根目录下创建一个.eslintrc.js或者.eslintrc.json的配置文件。 在配置文件中,可以指定要使用的ESLint规则,以及各种代码风格规范。一般来说,我们可以选择一种预设规则集,比如"eslint:recommended"或者"plugin:vue/recommended",它们包含了一系列通用的规则以及针对Vue的特定规则。 此外,我们还可以根据团队的要求,自定义一些规则,比如缩进、引号、变量命名等等。可以根据自己的代码风格和习惯来设置这些规则。 配置完成后,可以在VSCode的设置中,开启"eslint.autoFixOnSave"选项,这样在保存文件ESLint自动格式化代码并修复一些常见的错误。 在使用过程中,可能会遇到一些问题,比如与其他插件的冲突,或者某些规则与项目要求不符。此,可以根据具体情况进行相应的调整和配置。 总之,通过VSCodeESLint的配合使用,可以有效地进行Vue代码格式化和规范化,提高代码的质量和可维护性。 ### 回答3: VSCode是一款非常流行且功能强大的代码编辑器,对于Vue开发来说,它也提供了很好的支持。其中一个重要的功能就是ESLint代码格式化ESLint是一种JavaScript代码的静态分析工具,可以用来检查和格式化代码Vue项目中使用ESLint可以让开发者在编写代码保持一致的代码风格,并且能够及发现潜在的问题。 在VSCode中使用ESLint进行代码格式化,首先需要安装ESLint插件。打开VSCode,点击左侧的扩展按钮,搜索并安装"ESLint"插件。安装完成后,重启VSCode。 接下来,需要在项目中配置ESLint。在Vue项目的根目录下,创建一个名为".eslintrc.js"的文件,并在其中添加以下内容: ```javascript module.exports = { root: true, env: { node: true, }, extends: [ 'plugin:vue/essential', 'eslint:recommended', ], parserOptions: { parser: 'babel-eslint', }, rules: { // 在这里可以添加自定义的编码规范 }, }; ``` 在这个配置文件中,我们将ESLint的规则继承了"plugin:vue/essential"和"eslint:recommended",同也可以在"rules"中添加自定义的编码规范。 保存配置文件后,当我们在VSCode中打开Vue项目中的代码文件ESLint就会自动进行代码格式化。它会根据配置文件中的规则,对代码进行静态分析,并给出错误或警告信息。可以通过按下Ctrl + Shift + P,然后输入"Format Document"来手动触发代码格式化。 总结一下,在VSCode中使用ESLint进行Vue代码格式化,需要安装ESLint插件,并在项目中配置ESLint。这样,开发者就可以在代码编写过程中保持一致的代码风格,并及发现潜在的问题。希望这个回答对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值