当前位置: 首页 > news >正文

Vue3——项目配置eslint+prettier

一、安装依赖

pnpm add -D eslint prettier eslint-plugin-vue vue-eslint-parser @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-config-prettier eslint-plugin-prettier typescript-eslint

二、创建或修改 eslint.config.cjs

// eslint.config.cjs
const vuePlugin = require('eslint-plugin-vue');
const js = require('@eslint/js');
const tseslint = require('typescript-eslint');
const pluginPrettier = require('eslint-plugin-prettier');module.exports = [// 基础规则(替代 'eslint:recommended')js.configs.recommended,// TypeScript 规则(替代 '@typescript-eslint/eslint-plugin' 推荐规则)...tseslint.configs.recommended,// Vue 规则{// 全局通用规则(适用于所有文件)files: ['**/*.{vue,ts,tsx,js,jsx,cjs,mjs,mts,cts}'],// 新增 ignores 字段ignores: ['**/dist','**/node_modules','**/public','**/build','**/.vite','**/.eslintrc.js','**/*.min.*'],plugins: {vue: vuePlugin},languageOptions: {parser: require('vue-eslint-parser'),parserOptions: {ecmaVersion: 2020,sourceType: 'module',parser: require('@typescript-eslint/parser'), // 支持 Vue 中的 <script setup>vueFeatures: {filters: true,defaultLegacyBehavior: false}}},rules: {'no-undef': 'off','vue/no-unused-components': 'off','vue/multi-word-component-names': 'off','vue/require-default-prop': 'off','@typescript-eslint/no-require-imports': 'off','@typescript-eslint/no-unused-vars': 'warn','vue/v-on-style': ['warn', 'shorthand'],'vue/v-bind-style': ['warn', 'shorthand'],'vue/no-spaces-around-equal-signs-in-attribute': 'error'}},// 使用 Prettier 推荐配置{files: ['**/*.{vue,ts,tsx,js,jsx,cjs,mjs,mts,cts}'],plugins: {prettier: pluginPrettier},rules: {'prettier/prettier': ['error']}},// 自定义通用规则{rules: {'prefer-const': 'warn','no-console': ['warn', { allow: ['warn', 'error'] }],'no-debugger': 'error'}}
];

三、创建 .prettierrc 配置文件

{"printWidth": 100,"tabWidth": 2,"useTabs": false,"semi": true,"singleQuote": true,"quoteProps": "as-needed","jsxSingleQuote": false,"trailingComma": "none","bracketSpacing": true,"bracketSameLine": false,"arrowParens": "avoid","requirePragma": false,"insertPragma": false,"proseWrap": "preserve","htmlWhitespaceSensitivity": "css","vueIndentScriptAndStyle": false,"endOfLine": "auto","rangeStart": 0
}

四、添加 .prettierignore 忽略文件(可选)

/dist/*
/low-code-platform/*
.local
/node_modules/**
**/*.svg
**/*.sh
/public/*
stats.html

五、更新 package.json 添加脚本

{"scripts": {"lint": "eslint . --ext .ts,.vue,.js","lint:fix": "eslint . --ext .ts,.vue,.js --fix","format": "prettier --write .","format:check": "prettier --check ."}
}

六、VS Code 设置(推荐)

{"editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","[vue]": {"editor.defaultFormatter": "esbenp.prettier-vscode"},"[typescript]": {"editor.defaultFormatter": "esbenp.prettier-vscode"},"[javascript]": {"editor.defaultFormatter": "esbenp.prettier-vscode"}
}

七、验证是否有效

pnpm run lint
pnpm run lint:fix
pnpm run format
pnpm run format:check

八、安装vscode的插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

http://www.lqws.cn/news/586639.html

相关文章:

  • Instruct-GPT奖励模型的损失函数与反向传播机制解析
  • [15-2] 读写内部FLASH读取芯片ID 江协科技学习笔记(20个知识点)
  • 【C++指南】C++ list容器完全解读(三):list迭代器的实现与优化
  • 如何查看服务器的运行日志?
  • 关于Spring的那点事(1)
  • 【CSS】Grid 布局基础知识及实例展示
  • 内网ubuntu系统安装mysql
  • 《如何在 Spring 中实现 MQ 消息的自动重连:监听与发送双通道策略》
  • 算法题练习
  • 前端Vue面试八股常考题(一)
  • 【STM32HAL-第1讲 基础篇-单片机简介】
  • Redis Lua 调试器(LDB)完全指南
  • 具身智能的仿真技术(具身智能入门三)
  • 用Python采集CBC新闻:如何借助青果网络海外代理IP构建稳定采集方案
  • datax-web报错:连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境)
  • NAT 类型及 P2P 穿透
  • 信创项目oracle数据库迁移到达梦数据库需要会有哪些问题?如何解决?
  • Linux云计算基础篇(2)
  • 2025年6月个人工作生活总结
  • 【Springai】项目实战进度和规划
  • SpringCloud系列(42)--搭建SpringCloud Config分布式配置总控中心(服务端)
  • 个人博客开发问题记录:ThreadLocal获取用户数据失败
  • 《用奥卡姆剃刀原理,为前端开发“减负增效”》
  • CentOS 7 8 安装 madam
  • LLaMA-Factory框架之参数详解
  • (LangChain)RAG系统链路之嵌入模型Embedding(三)
  • spring-ai 工作流
  • 深入理解CSS定位:掌握网页布局的核心技术
  • SpringBoot 启动入口深度解析:main方法执行全流程
  • 【Python使用】嘿马云课堂web完整实战项目第2篇:CMS页面管理需求,后端工程搭建【附代码文档】