5月27日 22:03
Prettier 的 .prettierignore 怎么配置?有哪些常用规则和踩坑点?
.prettierignore 文件怎么写?
.prettierignore 放在项目根目录,语法和 .gitignore 完全一致。写好它才能放心跑 prettier --write .,否则会格式化不该动的文件。
shellnode_modules dist build coverage *.min.js *.min.css package-lock.json pnpm-lock.yaml
Prettier 默认会忽略哪些文件?
不需要手动写,Prettier 自动忽略:
- 版本控制目录:
.git、.svn、.hg node_modules(除非显式加--with-node-modules)
另外,Prettier 自动读取同目录下的 .gitignore,所以 .gitignore 里已经排除的文件不需要在 .prettierignore 里重复写。
四种忽略模式怎么用?
1. 目录忽略
shellnode_modules **/dist
2. 扩展名忽略
shell*.min.js *.min.css *.d.ts
3. 路径通配符
shellsrc/**/*.generated.ts !src/vendor/*.js
! 是否定模式,表示"前面忽略的里面,这条除外"。
4. 行内忽略(prettier-ignore 注释)
不想格式化某一段代码,在上方加注释:
js// prettier-ignore const matrix = [ [1, 000, 000], [0, 1, 000], [0, 000, 1] ];
HTML 里用 <!-- prettier-ignore -->,Markdown 里用 <!-- prettier-ignore -->,CSS 里用 /* prettier-ignore */。每种文件类型都有对应的注释语法。
CLI 相关的忽略参数有哪些?
--ignore-path .prettierignore.custom:指定自定义 ignore 文件路径--with-node-modules:取消默认对 node_modules 的忽略--list-different(别名-l):只列出不符合格式的文件名,CI 场景常用
bash# 用自定义 ignore 文件格式化 prettier --write --ignore-path .prettierignore.custom "src/**/*.js" # CI 中检查是否有未格式化的文件 prettier --check "src/**/*.js"
常见踩坑
ignore 规则写了不生效? 检查文件是否放在项目根目录,语法是否和 .gitignore 一致。
想格式化被忽略的文件? 直接传绝对路径给 prettier,ignore 规则不拦截绝对路径。
.prettierignore 和 .gitignore 规则冲突怎么办? .prettierignore 优先级更高。如果 .gitignore 排除了某个文件,但 .prettierignore 没有排除,Prettier 仍会格式化它。