什么是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 可以灵活地处理项目中不同类型的文件,确保仅对需要格式化的文件应用规则,同时避免对不应格式化的文件(如第三方库、特定测试文件等)造成影响。这对于大型项目或具有复杂目录结构的项目尤其重要,有助于确保代码风格的一致性和可维护性。