最简单的vite-vue3-ts项目添加 eslint + prettier实践记录

154 阅读1分钟

创建项目

话不多说移步下官方文档

安装vscode插件

vscode安装eslint插件和prettier,这个也不用多说

配置vite的eslint插件

import eslintPlugin from 'vite-plugin-eslint'; // 引入

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(), eslintPlugin()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
});

配置.estlintrc.js文件

module.exports = {
  root: true,
  extends: [
    "plugin:vue/vue3-essential",
    "eslint:recommended",
    "@vue/eslint-config-typescript",
    "@vue/eslint-config-prettier/skip-formatting",
    "plugin:prettier/recommended",
  ],
  env: {
    node: true,
  },
  plugins: ["vue", "@typescript-eslint"],
  rules: {
    semi: [2, "always"],
    // quotes: [2, "double"]
  },
};
```重点这个plugin:prettier/recommended

配置.prettierrc.json

{
  "$schema": "https://json.schemastore.org/prettierrc",
  "semi": true
}

注意这个里的semi属性先随便定义下,跟eslint的对应下,为啥的话我们看后面的操作。

配置下工作区的setting.json

{
    // "editor.codeActionsOnSave": {
    //     "source.fixAll.eslint": true
    // }
    "editor.formatOnSave": true, //  保存的时候美化格式
    "editor.defaultFormatter": "esbenp.prettier-vscode", // 默认格式化工具为 prettier
    "prettier.requireConfig": true,
    "eslint.workingDirectories": [{ "mode": "auto" }],
    "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact", "vue"]
}
上面前两个属性需要配置一下,其它的随意

使用

以上便是一般情况下的配置,但是在ide中可以发现

image.png 应该是plugin:prettier/recommended导致的,我们保存也是无法自动修复的。 然后我们在.prettierrc.json加上格式化规则

image.png

image.png 可以发现自动格式化了双引号,但是又有一个lint的报错,发现是自动加上了逗号,我们手动删掉,保存又会重新加上。想下应该是prettier的问题,因为我们加上了plugin:prettier/recommended,我们试着改下eslint的rules和.prettierrc.json

image.png

image.png 再看配置文件的报错保存后都自动修复了

结语

通过实践过程中的几个小错误,到这里基本能了解和体会到eslint和prettier是需要互相配合把我们的语法规则和代码格式做到标准化的,对于开发中需要开启lint的伙伴们来说还是能提高不少工作效率的。