vscode 配置vue+vetur+eslint+prettier自动格式化功能

17,850 阅读2分钟

该配置用于vue2 + js开发,最终效果是保存时自动根据eslint对js、html和css代码进行格式化。

vscode Vetur插件

Vetur插件用于识别vue文件,原本vetur自带格式化功能,但是和eslint会有冲突,所以我们在项目中会关闭vscode的自动格式化功能。

vscode ESlint插件

Eslint插件用于根据工程目录的.eslintrc.js配置文件在编辑器中显示一些错误提示,后面的自动格式化根据这里的错误提示进行格式化操作。

vscode Prettier插件

注意,这个是要禁用掉的,我们会使用prettier库进行格式化处理,开启Perttier插件会产生干扰。

基于vue-cli创建的项目

以下相关步骤需要注意:

手动选择配置

Foxmail20220806090250.png

把Linter/Formatter选上(默认已选上)

Foxmail20220806090432.png

选择vue2版本

Foxmail20220806090614.png

选择格式化搭配为Eslint+Prettier

Foxmail20220806090635.png

选择Lint on save (在编辑保存之后自动对代码进行格式化)

Foxmail20220806090649.png

选择In dedicated config files(将eslint和prettier的配置抽离到独立的文件中)

Foxmail20220806090711.png

创建完在package.json里面可看到和eslint与prettier相关的依赖

Foxmail20220806101411.png

在.eslintrc.js可以看到合并了eslint和prettier的格式化规则(eslint针对js,prettier针对js、html和css),并且已经通过处理好了eslint和prettier的规则冲突。

module.exports = {
  root: true,
  env: {
    node: true,
  },
  extends: [
    "plugin:vue/essential",
    "eslint:recommended",
    "plugin:prettier/recommended",
  ],
  parserOptions: {
    parser: "@babel/eslint-parser",
  },
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
  },
};

到这一步,编译的时候在vscode代码中和终端中都能看到格式报错提示了,但是还不能实现保存自动格式化。

image.png

image.png

在用户设置添加自定义设置

mac中的位置

根据需要选择全局(User)或者工程(Workspace)的配置,点击右上角的编辑按钮,打开settings.json文件

添加以下配置,使编辑器在保存时自动根据eslint规则格式化

"editor.codeActionsOnSave": {
    "source.fixAll": true
},
/* 关闭编辑器自带保存格式化功能,此功能会用Vetur进行格式化。*/
"editor.formatOnSave": false

到这里,保存完之后,就会自动进行代码格式化了

默认格式化规则可能不是我们想要的,可以在文件根目录下创建.prettierrc对prettier格式化进行自定义规则设置,以下为我添加的规则

{
  /* 使用单引号包含字符串 */
  "singleQuote": true,
  /* 不添加行尾分号 */
  "semi": false,
  /* 在对象属性添加空格 */
  "bracketSpacing": true,
  /* 优化html闭合标签不换行的问题 */
  "htmlWhitespaceSensitivity": "ignore"
}

非vue-cli创建的项目

添加eslint和prettier相关的依赖

    npm i @babel/eslint-parser @vue/cli-plugin-eslint eslint eslint-config-prettier eslint-plugin-prettier eslint-plugin-vue prettier -D 

添加vscode Vetur和ESlint插件, .eslintrc.js、.prettierrc 和 settings.json的内容和上面一样,这样就可以实现保存自动根据eslint进行格式化了。

总结

  • 引入eslint、vue和prettier的一些相关的依赖
  • 安装vscode Vetur和ESlint插件
  • 配置.eslintrc.js文件
  • 配置.prettierrc文件
  • 配置settings.json文件