Prettierで特定のファイルやフォルダを対象から除外する方法について解説します。
.prettierignoreを作成する
.prettierignore
を作成し、そこに対象から除外したいファイルやフォルダを書きます。
config.js
test/
上記の例では、config.js
というファイルと、test
フォルダを対象から除外しています。
実際に試してみる
実際にどう動くのか確認しましょう。
package.json
package.json
は次のとおりです。prettierをインストールし、prettier
コマンドを実行するスクリプトを追加しています。
{
"name": "node_prettier",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"format": "prettier --write '**/*.js'"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"prettier": "^2.6.2"
}
}
Prettierは設定ファイルがなくても実行可能なため、ここでは設定ファイルは作成せずに進めます。
プロジェクトの構造
プロジェクトの構造は以下のようになっており、用意した4つのJSファイルはすべてフォーマットされる書き方になっています。
$ tree
.
├── file1.js
├── file2.js
├── dir3
│ └── file3.js
├── dir4
│ └── file4.js
├── package-lock.json
└── package.json
各ファイルの中身は若干の違いはありますが、以下のような内容になっています。
function file1() {
console.log('file1');
}
関数内のインデントがない点と、文字列の囲み文字がダブルクォーテーションではなくシングルクォーテーションになっている点がフォーマットの対象となる箇所です。
Prettierを実行する
最初に.prettierignore
を用意せずに実行します。
$ npm run format
> node_prettier@1.0.0 format
> prettier --write '**/*.js'
dir3/file3.js 22ms
dir4/file4.js 2ms
file1.js 2ms
file2.js 1ms
プロジェクト直下の2ファイル、2つのフォルダ内のそれぞれのファイルが対象になっていることがわかります。
function file1() {
console.log("file1");
}
実際にファイルを見てみると、インデントおよび文字列の囲み文字が修正されていることが確認できました。
次に.prettierignore
を作成し、プロジェクト直下の1ファイルと2つのファイルのうちの1つを除外してから再度実行してみましょう。
file2.js
dir4/
先ほどと同様に実行してみると、除外したファイルとフォルダ内のファイルが表示されなくなりました。
$ npm run format
> node_prettier@1.0.0 format
> prettier --write '**/*.js'
dir3/file3.js 23ms
file1.js 2ms
ファイルも確認してみると、
ファイル名が表示されたファイルは、先ほどと同様にフォーマットされていますが、
function file1() {
console.log("file1");
}
ファイル名が表示されなかった(除外された)ファイルはフォーマットされていません。
function file2() {
console.log('file2');
}
node_modulesの除外は不要
実行してみるとわかりますが、node_modules
の除外は不要です。
そのため、対象としたいフォルダ内に除外したいファイルやフォルダがない場合は.prettierignore
を作成する必要はありません。