vite+vue3项目中集成ESLint与prettier

1. 集成eslint

1.1 安装eslint

shell 复制代码
npm add -D eslint

1.2 初始化ESLint配置

shell 复制代码
npx eslint --init

1.3 配置初始化选择

我的选择如下:

安装完成后(根目录会生成.eslintrc.js文件)

这个配置文件是默认生成的

1.4 eslint不生效解决方案

  • 检查vscode有没有安装eslint插件
  • 重启编辑器
  • vscode settings.json加上
bash 复制代码
{
	......
	    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true //ctrl+s保存的时候使用eslint修复
    },
	......
}

2. 集成Prettier

2.1 安装prettier

powershell 复制代码
npm install -D prettier
npm install -D eslint-config-prettier #eslint兼容的插件
npm install -D eslint-plugin-prettier #eslint的prettier

2.2 配置.prettierrc.js

在根目录下面添加.prettierrc.js文件夹,然后将下面的配置添加到其中。如果不想格式化某些文件可以再添加一个.prettierignore的文件,用法和.gitignore文件差不多,将不需要格式化的文件夹或文件通过正则匹配或者具名的方式添加进去,这样就不会格式化对应的文件了。

javascript 复制代码
module.exports = {
  // 一行最多 120 字符..
  printWidth: 120,
  // 使用 2 个空格缩进
  tabWidth: 2,
  // 使用缩进符
  useTabs: true,
  // 行尾需要有分号
  semi: true,
  // 使用单引号
  singleQuote: true,
  // 对象的 key 仅在必要时用引号
  quoteProps: 'as-needed',
  // jsx 不使用单引号,而使用双引号
  jsxSingleQuote: false,
  // 末尾需要有逗号
  trailingComma: 'all',
  // 大括号内的首尾需要空格
  bracketSpacing: true,
  // jsx 标签的反尖括号需要换行
  jsxBracketSameLine: false,
  // 箭头函数,只有一个参数的时候,也需要括号
  arrowParens: 'always',
  // 每个文件格式化的范围是文件的全部内容
  rangeStart: 0,
  rangeEnd: Infinity,
  // 不需要写文件开头的 @prettier
  requirePragma: false,
  // 不需要自动在文件开头插入 @prettier
  insertPragma: false,
  // 使用默认的折行标准
  proseWrap: 'preserve',
  // 根据显示样式决定 html 要不要折行
  htmlWhitespaceSensitivity: 'css',
  // vue 文件中的 script 和 style 内不用缩进
  vueIndentScriptAndStyle: false,
  // 换行符使用 
  endOfLine: 'auto'      //避免报错delete (cr)的错
};

2.3 在.eslintrc.js中加上

javascript 复制代码
	extends: [
		...
		//1.继承.prettierrc.js文件规则  2.开启rules的 "prettier/prettier": "error"  3.eslint fix的同时执行prettier格式化
		'plugin:prettier/recommended',
	],

2.4 如果不生效,试试重新打开项目

3. 集成eslint后unplugin-auto-import的配置和eslint报错解决

报错类似以下:

'onMounted' is not defined.eslintno-undef

'ref' is not defined.eslintno-undef

解决方案:参考链接

ESLint与prettier集成参考文档:链接

相关推荐
QQ1__81151751521 分钟前
Spring boot名城小区物业管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
钛态23 分钟前
前端微前端架构:大项目的救命稻草还是自找麻烦?
前端·vue·react·web
一粒黑子24 分钟前
【实战解析】阿里开源 PageAgent:纯前端 GUI Agent,一行JS让网页支持自然语言操控
前端·javascript·开源
独角鲸网络安全实验室25 分钟前
2026微信小程序抓包全解析:从实操落地到合规风控,解锁前端调试新范式
前端·微信小程序·小程序·抓包·系统代理绕过·https证书严格校验·进程隔离
紫微AI26 分钟前
前端文本测量成了卡死一切创新的最后瓶颈,pretext实现突破了
前端·人工智能·typescript
GISer_Jing26 分钟前
AI前端(From豆包)
前端·aigc·ai编程
IT枫斗者26 分钟前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
测试修炼手册26 分钟前
[测试技术] 深入理解 JSON Web Token (JWT)
前端·json
AI老李29 分钟前
2026 年 Web 前端开发的 8 个趋势!
前端
里欧跑得慢30 分钟前
15. Web可访问性最佳实践:让每个用户都能平等访问
前端·css·flutter·web