## 事象
[[prettierignore|.prettierignore]]に以下を記載したとき
`.prettierignore`
```
ignore.js
child/sample.js
```
✅ がフォーマットされたファイル、❌ がフォーマットされないファイル([[prettierignore|.prettierignore]]が効いているファイル)となる。
```
.prettierignore
ignore.js ❌
sample.js ✅
child
├── ignore.js ❌
├── sample.js ❌
parent
├── child
│ ├── ignore.js ❌
│ └── sample.js ✅ <========== これが議題
├── ignore.js ❌
└── sample.js ✅
```
`child/sample.js` と指定したのに `./parent/child/sample.js` が無視の対象に入らない。
### 環境
| 対象 | バージョン |
| ------------- | ---------- |
| [[prettierd]] | 0.26.2 |
| [[Prettier]] | 3.7.1 |
## 原因
[[prettierignore|.prettierignore]]は[[gitignoreシンタックス]]に準拠しており、`child/sample.js` は **[[prettierignore|.prettierignore]]が存在するパスからの相対パス** を指すので、`parent/child/sample.js` はそれに該当しないから。
> - `/` が最初または途中にあると[[gitignore]]からの相対パス
>
> *[[gitignoreシンタックス]]*
## 解決方法
`**`を使って指定する。
```
**/child/sample.js
```
> - `**` について
> - `**/` から始まる場合は **すべてのディレクトリ**
> - `/**` で終わる場合は **その中のすべて**
> - 深さは無制限
> - `/**/` は **0個以上のディレクトリ**
> - `a/**/b` は `a/b`, `a/x/b`, `a/x/y/b` に一致
>
> *[[gitignoreシンタックス]]*