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

ESLint 配置错误:ReferenceError: prettier is not defined 解决方案

问题描述

在使用 pnpm lint 运行 ESLint 时,出现以下错误:

Oops! Something went wrong! :(
ESLint: 9.31.0
ReferenceError: prettier is not defined

该错误导致 ESLint 无法正确执行代码格式检查,但 不会影响项目的实际运行(如 pnpm dev 或 pnpm build)。

错误原因

  1. eslint-plugin-prettier 未正确导入

    • 在 eslint.config.js 中使用了 prettier/prettier 规则,但没有正确引入 eslint-plugin-prettier

  2. ESLint v9+ 的 Flat Config 格式兼容性问题

    • 旧版 ESLint 的配置方式(如 .eslintrc.js)与新版 eslint.config.js 不兼容。

解决方案

方法 1:修复 eslint.config.js(推荐)

1. 安装必要依赖
pnpm add -D eslint-plugin-prettier prettier
2. 修改 eslint.config.js
import { defineConfig } from "eslint/config";
import globals from "globals";
import js from "@eslint/js";
import pluginVue from "eslint-plugin-vue";
import prettierPlugin from "eslint-plugin-prettier"; // 正确导入 Prettier 插件export default defineConfig([{files: ["**/*.{js,mjs,jsx,vue}"],ignores: ["**/dist/**", "**/dist-ssr/**", "**/coverage/**"],},{languageOptions: {globals: {...globals.browser,},},},js.configs.recommended,...pluginVue.configs["flat/essential"],{plugins: {prettier: prettierPlugin, // 注册 Prettier 插件},rules: {"prettier/prettier": ["warn",{singleQuote: true,semi: false,printWidth: 60,trailingComma: "none",endOfLine: "auto",},],"vue/multi-word-component-names": ["warn",{ ignores: ["index"] },],"vue/no-setup-props-destructure": "off","no-undef": "error",},},
]);
3. 重新运行 ESLint
pnpm lint

方法 2:降级 ESLint(兼容旧配置)

如果不想使用 ESLint v9+ 的 Flat Config,可以降级到 ESLint v8:

pnpm add eslint@8.56.0 -D

然后改用 .eslintrc.js 配置(旧版格式):

module.exports = {extends: ["eslint:recommended","plugin:vue/essential","plugin:prettier/recommended", // 使用 Prettier 推荐配置],rules: {"prettier/prettier": ["warn",{singleQuote: true,semi: false,printWidth: 60,trailingComma: "none",endOfLine: "auto",},],"vue/multi-word-component-names": ["warn",{ ignores: ["index"] },],"vue/no-setup-props-destructure": "off","no-undef": "error",},
};

http://www.lryc.cn/news/589404.html

相关文章:

  • Vue 常用的 ESLint 规则集
  • 卫星通信链路预算之六:输出回退
  • web前端渡一大师课 01 事件循环
  • 网络基础协议综合实验
  • Spring MVC 执行流程详解:一次请求经历了什么?
  • Linux修改ssh默认端口,禁止root登录,禁止密码登录并同时开启公钥认证
  • session与cookie的区别
  • 深入掌握Python正则表达式:re库全面指南与实战应用
  • 编程项目选择思考点以及项目包装的关键点
  • : $ operator is invalid for atomic vectors
  • HashMap中哈希值的计算方法和扩容机制
  • Git Idea 冲突解决
  • 身份核验自动化-姓名身份证号二要素核验接口-API实名验证
  • 【I3D 2024】Deblur-GS: 3D Gaussian Splatting from Camera Motion Blurred Images
  • git本地的操作
  • iOS 加固工具使用经验与 App 安全交付流程的实战分享
  • 渲染设计图的空间革命:可视化技术如何重塑设计决策
  • 自由学习记录(69)
  • King’s LIMS:实验室数字化转型的智能高效之选
  • 多目标跟踪(MOT)简单整理
  • 阿里开源项目 XRender:全面解析与核心工具分类介绍
  • 从基础到进阶:MyBatis-Plus 分页查询封神指南
  • WebAPIs基本认知,DOM基础介绍
  • 网络基础10--ACL与包过滤
  • k8s环境使用Operator部署Seaweedfs集群(下)
  • 删除k8s卸载后残留挂载点目录
  • 设计模式二:策略模式 (Strategy Pattern)
  • 医疗数据分析中标准化的作用
  • 新方法!家长可用安卓或苹果,远程管理孩子使用iPhone的时长
  • 1MIPI 转2MIPI,支持2560*1600,75HZ.