VSCode:欢迎你,ESlint

143 阅读3分钟

ESLint属于那种给人第一印象很恼火,习惯了她的陪伴之后就离不开的人。

首先,移除所有配置

为了避免VSCode各自插件配置或者手贱改了配置的不良影响,我先直接移除了所有配置。做法是删除C盘用户里面的.vscode文件夹。

对自己的配置有信心的话,完全可以不用删。为了更直观地展示相关配置带来的影响,我先恢复出厂设置。

重新打开VSCode之后,按推荐安装了中文包和vetur。

然后,安装ESLint

image.png

突然,报错警告满天飞

打开一个本来没有使用ESLint的vue项目,然后就会出现各种提示和报错信息,当你尝试启动项目时,还会有很多行的警告。这个修改和配置的过程比较折磨人,所以一般情况下初次使用者都会恼火,反问自己这个ESLint是不是非用不可???

好吧,其实也没那么恶心,要不你再坚持一下嘛。。。

最后,配置settings.json

经过反复地查询和cv,以及对代码格式化的强迫症,最终确定了settings.json的简单配置,它能保证在保存的时候进行格式化和eslint的修复。

这样一来,整个世界就安静下来了。

纯净版:(直接复制使用)

{
    "editor.formatOnSave": false,
    "eslint.codeActionsOnSave.rules": null,
    "vetur.format.defaultFormatterOptions": {
        "prettier": {
            "semi": false,
            "singleQuote": true,
            "trailingComma": "none",
            "printWidth": 150
        },
        "js-beautify-html": {
            "wrap_line_length": 150,
            "wrap_attributes": "auto",
            "end_with_newline": false
        }
    },
    "vetur.format.defaultFormatter.html": "js-beautify-html",
    "[vue]": {
        "editor.defaultFormatter": "octref.vetur"
    },
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[css]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "prettier.semi": false,
    "prettier.singleQuote": true,
    "prettier.trailingComma": "none"
}

注释版:

{
// 保存时自动格式化
"editor.formatOnSave": false,
"eslint.codeActionsOnSave.rules": null,
"vetur.format.defaultFormatterOptions": {
    "prettier": {
        // 分号
        "semi": false,
        // 单引号
        "singleQuote": true,
        // 尾部逗号
        "trailingComma": "none",
        // 超过150个字自动换行
        "printWidth": 150
        },
    "js-beautify-html": {
        // 超过100个字自动换行
        "wrap_line_length": 150,
        "wrap_attributes": "auto",
        // 结束标签不占新行
        "end_with_newline": false
    }
},
// 使上述js-beautify-html配置生效
"vetur.format.defaultFormatter.html": "js-beautify-html",
// vue文件默认使用vetur格式化
"[vue]": {
    "editor.defaultFormatter": "octref.vetur"
    }
}
// 注意以下5个配置,都需要安装prettier插件
// js文件默认使用prettier格式化
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
// css文件默认使用prettier格式化
"[css]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
// 不展示分号
"prettier.semi": false,
// 使用单引号
"prettier.singleQuote": true,
//不展示尾部逗号
"prettier.trailingComma": "none"
}

如果不安装prettier,可以不要相关配置项,但是无法自动移除js文件的分号,无法自动变为单引号,无法移除尾部逗号。为了和vue文件里的script部分规则对应,所以建议安装prettier。

加更

当我满心欢喜地以为找到了最终答案时,意外又来了。我将上述配置移植到工作电脑后,发现js一保存,就把我本来不想要的分号、逗号、双引号都加上了。

点击下方的Prettier,发现了相应的警告,如图:

image.png

原来是因为项目里有.editorconfig这个文件,虽然这个文件没有规定单引号、分号、逗号这三个规则,但是它在我看不见的地方有默认的规则,恰巧和我要的效果(不要分号、不要尾部逗号、使用字符串单引号)相反。当项目里有相应的格式文件时,VSCode的插件就以项目内的规则为准了。所以一保存,又给我变回去了。

我的处理方式是移除了.editorconfig这个文件,重打开VSCode之后,又恢复到往日的宁静了,嗯,真好。 当然了,最好的团队规范化处理方式应该是,大家约定好相应的规则,然后统一VSCode的插件配置。

本文只是为了探究VSCode中ESlint插件的使用,重点关注三个规则,从原来的到处警告报错,到恢复一切正常的过程哦。

如果以后遇到其他要求的代码规范规则,我也会再次更新哦~