圧縮すると、ページの表示や動きは変わりませんか?
取り除くのは、表示や動きに関係しない空白・改行・コメントです。JavaScriptは変数名の短縮と、動きが変わらない書き換えだけを行います。HTMLの空白の詰め込みは pre・textarea・script・style の中には当てず、要素の間の空白は既定で1つ残します(script・style の中は「中の <style>・<script> も圧縮する」がオンのとき、JavaScript・CSSとして圧縮します)。ただし、CSSで white-space: pre などを指定した要素の中の空白は詰まります。そうした部分を <!-- htmlmin:ignore --> と <!-- htmlmin:ignore --> で挟むと、その間は手を付けません。公開する前に、圧縮したもので表示と動作を確かめてください。
構文エラーと表示されました
エラーの行と列を表示し、元のコードはそのまま残します。表示された場所の前後で、かっこやクォートの閉じ忘れ、カンマの抜けを確かめてください。HTMLの中の <script>・<style> にエラーがある場合は、その部分だけ圧縮せずに残し、ほかの部分は圧縮します。CSSの入れ子(& を使う書き方)と @media (width >= 600px) のような範囲の書き方には対応しておらず、圧縮すると消えてしまうので、エラーとして止めます。
「gzip後の目安」とは何ですか?
多くのサーバーは、ファイルをgzipなどで圧縮してから送ります。そのときに実際に転送される大きさに近い値で、このブラウザの CompressionStream で実際にgzipして数えています。サーバーがBrotliを使っている場合は、これよりさらに小さくなることが多いです。
どのような仕組みで圧縮していますか?
JavaScriptは terser、CSSは csso、HTMLは html-minifier-terser という、広く使われているオープンソースのライブラリを使っています。このサイトに置いたものをブラウザに読み込んで動かすので、コードは外に出ません。CSSは規則の並べ替えや統合をしない設定にしています(順番が変わって見た目が変わるのを避けるため)。
圧縮したコードを元に戻せますか?
取り除いたコメントや改行、短くした変数名は元に戻せません。元のファイルは必ず残しておき、編集は元のファイルで行ってください。JSONを1行にまとめたいときは「JSON整形・検証」が向いています。
どのくらいの大きさまで扱えますか?
10MBまでのファイルを読み込めます。大きいほど時間がかかり、数MBのJavaScriptでは数秒から十数秒かかることがあります。