赞
踩
本篇文章主要讲解如何在Vite创建的Vue3 + ts项目中集成Eslint + Perttier实现代码规范检查以及在vscode编辑器中配置保存代码自动格式化,因为通过vite创建的项目默认是没有eslint代码检查功能的,但是在多人开发的项目中代码检查和代码格式化功能又不能没有,所以在此以博客的形式总结一下,希望对老铁们有所帮助,如果老铁觉得对你有帮助还望点赞 + 收藏,希望帮助到更多的人!
# 安装eslint
npm i eslint -D
npx eslint --init
命令初始化eslintYou can also run this command directly using 'npm init @eslint/config'. ? How would you like to use ESLint? ... To check syntax and find problems ? What type of modules does your project use? ... JavaScript modules (import/export) ? Which framework does your project use? ... Vue.js ? Does your project use TypeScript? » No / Yes Yes ? Where does your code run? ... (用空格选中两个,回车确定) √ Browser √ Node ? What format do you want your config file to be in? ... JavaScript The config that you've selected requires the following dependencies: eslint-plugin-vue@latest @typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest ? Would you like to install them now? No
npm i -D eslint-plugin-vue@latest @typescript-eslint/eslint-plugin@latest @typescript-eslint/parser@latest
module.exports = { "env": { "browser": true, "es2021": true, "node": true }, "extends": [ "eslint:recommended", "plugin:vue/vue3-essential", "plugin:@typescript-eslint/recommended" ], "overrides": [ ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "plugins": [ "vue", "@typescript-eslint" ], "rules": { } }
在package.json,添加命令
"scripts": {
// 执行该命令eslint会检测当前项目下所有的.vue,.js,.ts,.jsx,.tsx文件是否符合eslint的代码规范,并尝试自动修复
"lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix"
},
执行npm run lint
命令,会看到有报错
修改.eslintrc.cjs 文件
module.exports = { "env": { "browser": true, "es2021": true, "node": true }, "extends": [ "eslint:recommended", "plugin:vue/vue3-essential", "plugin:@typescript-eslint/recommended" ], "overrides": [ ], // 配置解析vue文件 "parser":"vue-eslint-parser", "parserOptions": { "ecmaVersion": "latest", "parser": "@typescript-eslint/parser", "sourceType": "module" }, "plugins": [ "vue", "@typescript-eslint" ], // 添加规则 "rules": { "@typescript-eslint/ban-types": [ "error", { "extendDefaults": true, "types": { "{}": false } } ] } }
然后重新执行npm run lint
命令就不会报错了。
npm install prettier -D
在项目的根目录下创建.prettierrc.cjs文件,这个文件是Prettier的配置文件,可以在这个文件中配置Prettier格式化代码的规则,添加配置如下:
// prettier的默认配置文件 module.exports = { // 一行最多 100 字符 printWidth: 100, // 使用 2 个空格缩进 tabWidth: 2, // 不使用缩进符,而使用空格 useTabs: false, // 不尾随分号 semi: false, // 使用单引号 singleQuote: true, // 多行逗号分割的语法中,最后一行不加逗号 trailingComma: 'none', // 单个参数的箭头函数不加括号 x => x arrowParens: 'avoid', // 对象大括号内两边是否加空格 { a:0 } bracketSpacing: true, }
打开:File -> Preferences -> Settings -> 在 settings.json 中编辑,在setttings.json文件中添加一些配置:
{ // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tabsize "editor.tabSize": 2, // 每次保存的时候自动格式化 "editor.formatOnSave": true, "editor.codeActionsOnSave": { // 使用eslint来fix,包括格式化会自动fix和代码质量检查会给出错误提示 "source.fixAll.eslint": true }, // 把prettier设置为vscode默认的代码格式化工具 "editor.defaultFormatter": "esbenp.prettier-vscode", // vue文件的默认格式化工具选择prettier "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode" } }
配置到这里当我们在vscode编辑器中保存代码时,就可以自动格式化代码了!
因为ESLint和Prettier都可以进行代码格式化,而且我们在setttings.json文件中同时开启了ESLint和Prettier进行代码格式化,所以两者重叠的格式化规则不一致时就导致了格式化代码时出现冲突的问题。
安装 eslint-config-prettier 和 eslint-plugin-prettier 依赖
npm install eslint-config-prettier eslint-plugin-prettier -D
然后在 .eslintrc.cjs 中 extends的最后添加一个配置:
extends: [
'eslint:recommended',
'plugin:vue/vue3-essential',
'plugin:@typescript-eslint/recommended',
"plugin:prettier/recommended" // 解决ESlint和Prettier冲突
],
这样配置后,ESLint进行格式化时就会忽略跟Prettier重叠的格式规则,这些交由Prettier来进行格式化,这样就解决了ESlint和Prettier的冲突问题了。
如果想要vite运行的时候自动检测eslint规范,只需要安装vite-plugin-eslint依赖和添加相关配置即可。
npm install vite-plugin-eslint -D
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import eslintPlugin from 'vite-plugin-eslint'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
// 配置vite在运行的时候自动检测eslint规范
eslintPlugin({
include: ['src/**/*.ts', 'src/**/*.js', 'src/**/*.vue', 'src/*.ts', 'src/*.js', 'src/*.vue']
})
]
})
在vite.config.ts文件中添加了vite-plugin-eslint插件的配置后,就会看到vite在运行的时候对代码进行eslint规范检查了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。