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

【问题解决】用pnpm创建的 Vue3项目找不到 .eslintrc.js文件 及 后续的eslint配置的解决办法

问题描述:

在用 pnpm 创建的 Vue3项目中 需要配置 ESLint 代码风格,却找不到 .eslintrc.cjs文件

分析原因:

1. ESLint 版本升级(9.x+)

ESLint 9.x 版本默认采用新的扁平化配置格式,不再使用 .eslintrc.cjs 等旧格式,而是默认生成 eslint.config.js(或 .mjs .cjs 等)。如果使用新版 ESLint,就不会出现 .eslintrc.cjs 文件。

2. 创建项目时未选择 ESLint

如果使用 pnpm create vue 或类似脚手架创建项目时,没有勾选 ESLint,则不会生成任何 ESLint 配置文件。
 

解决办法:

方案一:检查并使用新版 ESLint 配置文件

  1. 看项目根目录下有没有 eslint.config.js 或类似文件(如 eslint.config.mjseslint.config.cjs)。
  2. 如果有,直接在这个文件里配置规则即可,无需强行改为 .eslintrc.cjs

方案二:手动生成旧版 .eslintrc.cjs 文件

如果你更习惯 .eslintrc.cjs,可以手动生成:

1. 安装 ESLint(如果尚未安装)

pnpm add eslint@8.57.0


2. 生成 .eslintrc.cjs 配置文件

npx @eslint/create-config@0.4.6

完成后,项目根目录会生成 .eslintrc.cjs 文件。(如果生成的配置文件不叫 .eslintrc.cjs,则将文件名改成这个即可)

方案三:降级 ESLint 到 8.x

如果希望用旧版配置,可以降级 ESLint:

1. 修改 package.json,将 ESLint 相关依赖改为 8.x 版本

2. 删除 node_modules pnpm-lock.yaml

3. 删除依赖(@vue/eslint.js 版本号)重新安装依赖:

pnpm install

4. 再执行 npx eslint --init(初始化 ESLint 配置) 即可生成 .eslintrc.cjs。或者修改eslint.config.js文件名为.eslintrc.cjs,并删除原文件全部内容,并配置 8.x版本的.eslintrc(详情见下文eslint 9.0以下版本(旧版本) 配置方法

5. 点击“扩展”,下载 eslint 的 2.4.0 版本插件。

Eslint 配置代码风格

(1)  eslint 9.0以下版本(旧版本) 配置方法

环境同步:

  1. 安装了插件 ESlint,开启保存自动修复
  2. 禁用了插件 Prettier,并关闭保存自动格式化
  3. vite 创建的 Vue3 项目勾选了 ESLint 和 Prettier

// ESlint插件 + Vscode配置 实现自动格式化修复
"editor.codeActionsOnSave": {"source.fixAll": true
},
"editor.formatOnSave": false,

或着参考这篇博客:

【vue eslint】报错:VSCode自动保存格式化与ESLint规则冲突https://blog.csdn.net/weixin_52047874/article/details/151065243

配置文件 .eslintrc.cjs

  1. prettier 风格配置 https://prettier.io

    1. 单引号

    2. 不使用分号

    3. 每行宽度至多80字符

    4. 不加对象|数组最后逗号

    5. 换行符号不限制(win mac 不一致)

  2. vue组件名称多单词组成(忽略index.vue)

  3. props解构(关闭)

  rules: {'prettier/prettier': ['warn',{singleQuote: true, // 单引号semi: false, // 无分号printWidth: 80, // 每行宽度至多80字符trailingComma: 'none', // 不加对象|数组最后逗号endOfLine: 'auto' // 换行符号不限制(win mac 不一致)}],'vue/multi-word-component-names': ['warn',{ignores: ['index'] // vue组件名称多单词组成(忽略index.vue)}],'vue/no-setup-props-destructure': ['off'], // 关闭 props 解构的校验// 💡 添加未定义变量错误提示,create-vue@3.6.3 关闭,这里加上是为了支持下一个章节演示。'no-undef': 'error'}

(2) eslint 9.x 以上版本(新版本) 配置方法

1. 安装 ESLint

环境要求:

  • Node.js >= 18.18.0
  • vite 创建的 Vue3 项目勾选了 ESLint 和 Prettier
  • VSCode 安装了 ESLint插件,Prettier插件仍要禁用
// ESlint插件 + Vscode配置 实现自动格式化修复
"editor.codeActionsOnSave": {"source.fixAll.eslint": always
},
"editor.formatOnSave": false,

或着参考这篇博客:

【vue eslint】报错:VSCode自动保存格式化与ESLint规则冲突https://blog.csdn.net/weixin_52047874/article/details/151065243

2. 生成配置文件

如果项目根目录没有 eslint.config.js,可以运行:

npx eslint --init


3. 初始化配置

eslint.config.js 配置文件:

import globals from 'globals'
import js from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'import eslintConfigPrettier from '@vue/eslint-config-prettier' //添加这一行代码export default [{name: 'app/files-to-lint',files: ['**/*.{js,mjs,jsx,vue}'],// rules添加到这里,上面写的该规则应用于js,mjs,jsx,vuerules: {'prettier/prettier': ['warn',{singleQuote: true, // 单引号semi: false, // 无分号printWidth: 100, // 每行宽度至多100字符trailingComma: 'none', // 不加对象|数组最后逗号endOfLine: 'auto' //换行符号不限制(win mac 不一致)}],// vue组件名称多单词组成(忽略index.vue)'vue/multi-word-component-names': ['warn', { ignores: ['index'] }],// 关闭 props 解构的校验'vue/no-setup-props-destructure': ['off'],// 💡 添加未定义变量错误提示,create-vue@3.6.3 关闭,这里加上是为了支持下一个章节演示。'no-undef': 'error'}},{name: 'app/files-to-ignore',ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],//rules添加到这里rules: {'prettier/prettier': ['warn',{singleQuote: true,semi: false,printWidth: 100,trailingComma: 'none',endOfLine: 'auto'}],'vue/multi-word-component-names': ['warn', { ignores: ['index'] }],'vue/no-setup-props-destructure': ['off'],'no-undef': 'error'}},{languageOptions: {globals: {...globals.browser}}},js.configs.recommended,...pluginVue.configs['flat/essential'],skipFormatting,eslintConfigPrettier //添加这一行代码
]

注:prettier 专注于代码的美观度(格式化工具);ESLint 关注于规范。

更多 prettier 风格配置参考官网:https://prettier.io/

最后 退出重启即可!

建议:

  • 如果项目刚创建,且不依赖旧版配置:直接使用 eslint.config.js
  • 如果希望用旧版 .eslintrc.cjs:用方案二或方案三手动生成。
  • 如果已有 .eslintrc.cjs 但不生效:检查是否安装了相关依赖(如 eslint-plugin-vue@typescript-eslint/parser 等)。
     

http://www.dtcms.com/a/564677.html

相关文章:

  • Kubernetes Pod 基本原理:全面详解
  • 有关于cnb自动化的脚本补全
  • Hive三大连接操作全解析
  • css3新增过渡
  • Hive 中的 COALESCE 函数作用
  • 网站建设内部下单流程图赣州的免费网站建设
  • 广东顺德网站建设instagram wordpress
  • Linux连接Doris:MySQL与Beeline指南
  • 【金仓数据库】ksql 指南(四) —— 创建与管理表(KingbaseES 数据存储核心)
  • Swift项目生成Framework流程以及与OC的区别
  • C++多线程同步与互斥
  • Python Jupyter Notebook 完全指南:从入门到精通
  • 站点查询wordpress 外贸网站
  • CSP集训错题集 第八周 主题:基础图论
  • 基于C语言 HTTP 服务器客户端的实验
  • 如何利用 Jupyter 从浏览器访问远程服务器
  • C语言基础知识点简单案例分享之二——C语言全知识点速查宝典
  • 怎么找网站局域网电脑做网站服务器
  • 一男一女做那个的动漫视频网站网站怎样推广 优帮云
  • hive常用命令
  • AWS + 飞天CMS:高性能内容站的云端搭建方案
  • 800G光模块:驱动AI与云计算高速互联的核心引擎
  • Python每日一练---第三天:删除有序数组中的重复项
  • U-Net 的输入与输出:通用场景与扩散模型场景解析
  • 李宏毅机器学习笔记39
  • 【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
  • PPT+配音生成带旁白的PPT演示视频
  • abp vnext cli无法正常使用,卡在 Checking extensions..,cli修改abp版本及.net版本
  • 萤石摄像头使用NAS作为存储
  • 2025江西省职业院校技能大赛(中职组)移动应用与开发竞赛样题