Node.jsを使った開発では、ビルド時にdist
フォルダなどの公開用フォルダのクリーンアップや、.map
ファイルなどの開発時にしか使用しないファイルを削除するシーンがあります。
今回はnpm-scriptsで特定のファイルやフォルダを削除するrimraf
というNode.jsのパッケージについて解説します。
なお、この記事ではNode.jsおよびnpmがインストールされており、npm-scriptsの基本的な知識があることを前提として進めます。
INDEX
rimraf
とは
rimraf
とは、ファイルやディレクトリを削除するためのNode.jsのパッケージです。
ビルド時の公開用フォルダのクリーンアップや、開発時にしか使用しないファイルの削除など、ビルドプロセスの一つとして使用されます。
そもそもNode.jsではパッケージを利用せずにデフォルトのコマンドでもファイルの削除は行えますが、クロスプラットフォームに対応していなかったりと、デフォルトの機能だけではデメリットが多い状況です。
そのためクロスプラットフォームに対応しているrimraf
パッケージを利用することで、安全に効率的なファイルやディレクトリの削除を行えます。
プロジェクトの準備
プロジェクトフォルダを作成
今回のサンプルでは下記のような、.map
ファイルを使用した開発を想定して進めていきます。
それでは以下のディレクトリとファイルを参考に、それぞれ適当なファイルを準備してください。
htdocs
└dist/
└assets/
└css/
└style.css
└style.css.map
└js/
└main.js
└main.js.map
プロジェクトフォルダを作成したら以下のコマンドでpackage.json
を作成します。
npm init -y
パッケージのインストール
以下のコマンドで今回利用するrimraf
のパッケージをインストールします。
npm i -D rimraf
package.json
のdevDependencies
に以下のようにインストールしたパッケージが記載されたら成功です。
{
"devDependencies": {
"rimraf": "^5.0.5"
}
}
スクリプトの登録と解説
rimraf
では対象の指定方法が複数ありますのでそれぞれ解説してきます。
それではpackage.json
のscripts
フィールドに以下のコードを記述し、動作を確認していきましょう。
対象のファイルを指定してコピー
{
"scripts": {
"clean:file": "rimraf dist/assets/css/style.css.map"
},
}
対象のファイル一つを、削除するスクリプトです。
ターミナルでnpm run clean:file
コマンドを実行し、対象のファイルが削除されていることを確認してください。
対象の拡張子のファイルを指定して削除
{
"scripts": {
"clean:map": "rimraf dist/assets/**/*.map"
},
}
拡張子を指定したファイル削除のスクリプトです。
全ての.map
ファイルを対象として削除を行ってみましょう。
/**
と書くことで、そのディレクトリ以下の全てのファイルを対象として指定されます。
また、拡張子は複数選択することも可能です。
複数選択する場合は、拡張子を{}
で囲み、,
で拡張子を繋いで指定します。
{
"scripts": {
"clean:files": "rimraf dist/assets/**/*.{css,js}"
},
}
対象のフォルダー(ディレクトリ)を指定して削除
{
"scripts": {
"clean:folder": "rimraf dist/assets"
},
}
対象フォルダとその中のすべてのファイルを削除するスクリプトです。
フォルダごと削除されていることを確認してください。
対象のフォルダー(ディレクトリ)とファイルを複数指定して削除
{
"scripts": {
"clean:multi": "rimraf dist/assets/css dist/assets/js/main.js.map"
},
}
対象ファイルとフォルダを一つのスクリプトで複数指定することも可能です。
複数のファイルやフォルダを同時に削除する場合は、対象のファイル・フォルダをスペースで区切って指定します。
おわり
以上でnpm-scriptsのrimraf
パッケージでファイルを削除する開発環境の完成です。
プロジェクトごとにそれぞれカスタマイズをしてご自身のプロジェクトに活かしていただけますと幸いです。