## 事象 [[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シンタックス]]*