如何在ESLint defineConfig API中使用Prettier推荐规则并配置目录规则与忽略项
如何在ESLint defineConfig API中使用Prettier推荐规则并配置目录规则与忽略项
嘿,我看你已经在折腾ESLint和Prettier的组合配置了,刚好碰到的是目录规则和忽略项的问题,我帮你把配置补全并理清楚逻辑,保证完全贴合你的需求——给folderA、folderB应用规则,彻底跳过folderC。
首先先确认下你的目录结构:
root |- folderA |- folderB |- folderC
你之前用defineConfig数组形式拆分配置的思路是对的,不过有几个小细节需要调整:比如ESLint里指定忽略项要用官方的ignorePatterns字段而非ignore,还有你代码里的引号没闭合。下面是补全后的完整配置:
// 若使用ES模块格式的配置文件(.eslintrc.mjs) import { defineConfig } from 'eslint-define-config'; import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; export default defineConfig([ // 第一组:指定目标文件与忽略目录 { // 仅对folderA和folderB下的.vue、.ts文件生效 files: ["folderA/**/*.{vue,ts}", "folderB/**/*.{vue,ts}"], // 彻底忽略folderC下的所有文件与子目录 ignorePatterns: ["folderC/**/*"], }, // 第二组:应用Prettier推荐规则 eslintPluginPrettierRecommended, // 可选:给特定文件夹添加额外规则(比如仅给folderA加特殊规则) // { // files: ["folderA/**/*.vue"], // rules: { // // 示例:将未使用变量的提示设为警告 // "vue/no-unused-vars": "warn" // } // } ]);
如果你的配置文件是CommonJS格式(.eslintrc.cjs/.eslintrc.js),把导入方式改成CommonJS风格即可:
const { defineConfig } = require('eslint-define-config'); const eslintPluginPrettierRecommended = require('eslint-plugin-prettier/recommended'); module.exports = defineConfig([ // 配置内容和上面一致 ]);
再给你拆解下每个部分的作用:
files字段:精准锁定ESLint的扫描范围,避免它浪费资源处理无关文件,这里明确只针对folderA和folderB的Vue、TypeScript文件。ignorePatterns字段:ESLint官方指定忽略项的字段,folderC/**/*能确保忽略整个folderC文件夹下的所有内容,你只写folderC也能生效,但加通配符会更明确直观。eslintPluginPrettierRecommended:这个规则集已经帮你做好了Prettier和ESLint的兼容工作——它会启用eslint-plugin-prettier,把Prettier的格式问题转换成ESLint错误提示,同时自动关闭所有和Prettier冲突的ESLint内置规则,不用你手动逐个调整。
最后再提几个实用注意点:
- 确保你已经安装了必要的依赖:
eslint、eslint-plugin-prettier、prettier,如果用了eslint-define-config也要记得安装它。 - 数组里的配置块是按顺序合并的,后面的配置会覆盖前面的冲突规则,所以如果要给特定文件夹加额外规则,记得把对应的配置块放在后面。
内容来源于stack exchange
相关产品推荐
相关产品推荐

