什么是prettier的glob 模式?
Prettier
使用 glob
模式(或称 glob patterns
)来指定需要格式化的文件集。Glob
模式是一种简洁的字符串表达式,用于匹配一组符合特定规则的文件路径。
这种模式广泛应用于:
各种文件查找、过滤和操作场景,包括构建工具、代码 linting 工具、文件系统操作库等。
在 Prettier 的上下文中,glob 模式用于定义哪些文件应当被 Prettier 自动格式化。
Glob 模式包含一些特殊字符和通配符,用于表示文件路径的不同部分和可能的变化。以下是一些常见的 glob 模式符号及其含义:
*(星号)
:匹配任何非斜杠 (/) 字符序列。例如,*.js
匹配所有以 .js
结尾的文件名,如 index.js
、app.js
等。
**(双星号)
:递归匹配任意深度的子目录。例如,**/*.js
匹配当前目录及其所有子目录下的所有 .js
文件。
?(问号)
:匹配任何单个字符。例如,file?.js
匹配 file.js
、fil.js
、fie.js
等。
[...](方括号)
:匹配括号内的任何一个字符或字符范围。例如,image-[1-9].jpg
匹配 image-1.jpg
到 image-9.jpg
;example.[txt|md]
匹配 example.txt
和 example.md
。
{...}(花括号)
:用于列出多个互斥的选择项,匹配其中一个。例如,{a,b,c}.txt
匹配 a.txt、b.txt 或 c.txt
。
!(感叹号)
:用于否定前面的模式,排除匹配到的文件。通常放在模式前面,与 **、*
等配合使用。例如,!**/__tests__/**
会排除所有 __tests__
目录下的文件。
在 Prettier 的配置文件(如 .prettierrc.js
、.prettierrc.json
或 package.json
中的 prettier
字段)中,您可以使用 overrides
部分来定义包含 glob
模式的对象,从而指定特定文件或文件集的格式化规则。例如:
// .prettierrc.js 或 .prettierrc.json
module.exports = {
overrides: [
{
files: ['src/**/*.ts', '!src/**/__tests__/*.ts'], // 匹配 src 下所有 .ts 文件,但排除 __tests__ 目录内的 .ts 文件
options: {
// 对这些文件的特定格式化规则
},
},
],
};
通过 glob 模式,Prettier 可以灵活地处理项目中不同类型的文件,确保仅对需要格式化的文件应用规则,同时避免对不应格式化的文件(如第三方库、特定测试文件等)造成影响。这对于大型项目或具有复杂目录结构的项目尤其重要,有助于确保代码风格的一致性和可维护性。