JSCompress:フロントエンドのスクリプトとスタイルをまとめて圧縮

要約

JSCompress はエディターに依存せず JavaScript と CSS をまとめて圧縮・結合します。フォルダーを選び、深さと種類を決めれば、スタイルは YUI Compressor、スクリプトは Closure Compiler が処理します。

おすすめ
ソフト名
JSCompress
バージョン
20221028
料金
無料
オープンソース
非オープンソース
公式サイト
https://www.jscompress.cn/
更新日時
2026-10-06 12:46

ファイルではなくフォルダーを扱う圧縮ツール

JSCompress は、フロントエンドの資材をまとめて圧縮し、難読化し、結合する無料のツールです。この一文でいちばん重要な語は「まとめて」です。ファイル一本を圧縮するのは十数通りの解がある解決済みの問題で、三百本を変更のたびに同じ状態に保つのが、実際の案件で本当に壊れる部分です。

単体で動き、エディターにもビルドスクリプトにもぶら下がりません。これは意図した立場です。スクリプトとスタイルの入ったフォルダーは、開発環境がまったく無い機械でも圧縮できます。そしてその機械こそ、リリース版が組み上げられる場所であることが多いのです。

JSCompress のメイン画面

一つの画面の下に二つのエンジン

スタイルは YUI Compressor for .Net、スクリプトは Google Closure Compiler に任せます。二つ使うのは優柔不断ではなく、二つの言語では必要な処理が違うからです。CSS の圧縮は主に空白、コメント、重複を扱う話で、結果はブラウザーが解析できるスタイルシートのままでなければなりません。JavaScript の圧縮は別の問題です。空白だけでなく識別子を短くでき、到達しないコードを落とせますが、結果の振る舞いは元と完全に同じでなければなりません。見た目よりずっと厳しい要求です。

実績のあるエンジンを使うことは、自作ミニファイアがよくやる失敗を避ける方法でもあります。改行を削るだけのツールはすぐ書けて、最初に出会った正規表現を壊します。

種類ごとの圧縮設定
エンジンの選択肢

流れは四つの判断

設定はファイルの種類ごとに一度、ダイアログで決めます。スクリプト、スタイル、画像、前処理系のシートに、それぞれどの圧縮方式を当てるか。そのあとの作業はフォルダーから始まります。フォルダーを右クリックし、そのディレクトリのファイルを圧縮する、を選びます。

残る問いは二つで、どちらも効きます。一つは深さ。その階層のファイルだけか、下のすべてを含めるか。もう一つは、この実行に含めるファイルの種類。そのあと圧縮が始まり、本来なら午後いっぱいかかる保存の繰り返しが、ログを読むくらいの時間で終わります。

フォルダーの右クリックメニュー
深さの選択
ファイルの種類

文字コード、一括ツールが転ぶところ

ソースファイルを書き換えるものは、それがどう書かれていたかを知らなければなりません。何年もかけて育ったフォルダーには複数の文字コードのファイルが混在し、その一つを前提にした圧縮ツールは、他のコードの文字列をすべて壊します。検出は地味ですが、「この実行結果は信頼できる」と「あとで一本ずつ確認する」の差はここで決まります。

同じ懸念は結合にも当てはまります。複数のスクリプトを一本にまとめるのは、前のファイルの最終行と次のファイルの先頭行が、どちらも言っていない何かに合成されないときにだけ成立します。

文字コードの認識

失敗と言うとき、たいてい正しい

すでに圧縮されたファイルを圧縮すると、小さくなる代わりにエラーになることがあります。これは避けるべき不具合ではありません。圧縮後のコードは、もうエンジンが想定しているソースではありませんし、同じ変換を二度かけると振る舞いが変わるか、解析できない出力になることがあります。

実務の決まりは、このツールが前提にしているものと同じです。ソースは残し、圧縮結果は別の場所へ出し、圧縮物は作品として扱って、さらに手を入れる対象とは考えないことです。

圧縮ログ
圧縮の前後

向いている場面

JSCompress は、フロントエンドを手作業で組み立てている場合や、ビルドを誰かが保守していて誰も触りたくない場合のためのものです。画面を持つ一括ツールであって、ビルドシステムではありません。ファイルを監視せず、依存関係を解決せず、タスクランナーの代わりにもなりません。一つのディレクトリを受け取り、より小さなディレクトリを返し、何が起きたかをログに書く。それだけで足りる場面は少なくありません。