×

複数のhtmlファイルを対象にPurgeCssで不要なCSSセレクタを削除する

2024/04/07

PurgeCssとは

PurgeCSS is a tool to remove unused CSS.(PurgeCSSは未使用のCSSを削除するツールです。)
記事画像

記事概要

前回作業でインストールしたPurgeCssを実際に使ってみたので手順をまとめる。

PurgeCssを使用するにはnode.js、npmが必要となる。環境構築の手順は以下記事にまとめている。

thumbnail

Ubuntu22.04 on WSL2 にnode.jsとnpmの最新バージョンをインストールする

不要なCSSを整理するツール「PurgeCss」を使ってみたいと思ったがnode.js、npmの環境が必要である。だがUbuntuのリポジトリにあるnodejsのバージョンが古い。よって新しいバージョンをインストールするまでの手順を備忘録として記す。

作業環境

OS

Ubuntu 22.04.4 LTS(WSL2 on Windows11 Proで作動)

node.js

v20.12.1

PurgeCss

v6.0.0

作業詳細

単一のhtmlファイルを対象にPurgeCssを実行する

PurgeCssはコマンドで処理を行う。

PurgeCssはhtmlとcssファイルを解析し、不要なセレクタを削除した新たなcssファイルを出力する。

例えば、index.htmlとstyle.cssが同階層に配置してあるrootディレクトリに移動し作業を行うとする。

root/
  ├ build/
 ├ index.html
 └ style.css

ここで以下を実行する。

PurgeCssを実行purgecss --css styles.css --content index.html --out build/

そうすると、buildディレクトリに不要なセレクタを削除したstyle.cssが作成される。

出力ファイル名を変えたい場合は、outputパラメータをbuild/style.purged.cssなどとする。

複数のhtml、cssファイルを対象にPurgeCssを実行する

これが今回やりたかったこと。

rootディレクトリ内にあるすべてのhtml、cssを対象にまとめて処理を行う。

例えば多階層に存在するhtmlをすべて解析することを想定し、設定ファイルを準備する。

root/
  ├ assets/
  │  └ css/
  │      ├ style.css
  │      └ color.css
  ├ index.html
  ├ 404.html
  └ sub/
      ├ help.html
      └ about.html

rootディレクトリの一つ上の階層で作業を行うとする。

ここにpurgecss.config.jsという名前で設定ファイルを以下の通り作成する。

purgecss.config.jsmodule.exports = {
// PurgeCSSの設定をここに記述
content: ['./public/**/*.html'], // PurgeCSSが探索するHTMLファイルのパス
css: ['./public/assets/**/*.css'], // PurgeCSSが処理するCSSファイルのパス
// その他の設定をここに追加
};

そしてbuildディレクトリを準備し、以下コマンドを実行するとbuildディレクトリ内に処理済みのstyle.cssとcolor.cssが作成される。

PurgeCssを実行purgecss --config purgecss.config.js --output build/

まとめ

今回、静的サイトのファイルに対しPurgeCssで容易にCSSの整理ができることが確認できた。

次はBlogなど動的コンテンツのサイトで良い方法がないか考える。

参考サイト

コメント