このツールについて
JavaScript 圧縮ツールは、コメントを削除し、不要な空白と改行をまとめてスクリプトのサイズを削減し、バイト削減量を報告します。サイズに敏感な場所へ貼り付ける前に、小さなスクリプトやスニペットを縮小する、依存なしで高速な方法です。すべての処理はローカルで行われます。コードは純粋にテキストとして扱われ決して実行されないため、eval はなく、何もアップロードされません。
これは保守的でトークンを認識する圧縮ツールです。ソースをトークンに走査し、文字列、テンプレートリテラル、正規表現、コメントの内部を正しくまたぐため、それらの内容はバイト単位で保持されます。コメントは削除されます(切り替えで保持も可能)。空白の連続は、本当にスペースが必要な場所を除いてどこでも削除されます。すなわち 2 つの識別子/数値/キーワードのトークンの間('return a' が 'returna' にならないように)や、融合してしまう 2 つの演算子文字の間('a + +b' がスペースを保つように)です。キーワードに続く正規表現リテラルも区切りのスペースを保ちます。
抽象構文木を再構築しないため、変数名の変更やデッドコードの除去は行いません。除去して確実に安全なものだけを削除します。また改行もまとめるため、行をまたいだ自動セミコロン挿入に依存するコードは、あらかじめ明示的なセミコロンを使うべきです。パネルには元のサイズ、圧縮後のサイズ、削減率が表示されます。
よくある質問
変数名を変更したりロジックを圧縮したりしますか?
いいえ。これは保守的な空白とコメントの圧縮ツールであり、完全なコンプレッサーではありません。変数名の難読化、定数畳み込み、デッドコード除去は行いません。コメントと非本質的な空白を除去するだけなので、出力はソースとの差分が取りやすいままです。
文字列と正規表現は安全ですか?
はい。圧縮ツールはソースをトークン化し、文字列、テンプレートリテラル、正規表現の内部を正確に保持します。それらの中のスペースやコメントらしきテキストは決して触れられないため、圧縮後のコードは同一に動作します。
圧縮でコードが壊れる可能性はありますか?
改行をまとめるため、行をまたいだ自動セミコロン挿入に依存するスクリプトは意味が変わる可能性があります。コードがすでに明示的なセミコロンを使っていれば(ほとんどの場合そうです)、出力は等価です。不確かな場合は圧縮結果をテストしてください。
サイズの数値は何を意味しますか?
圧縮後、ツールは元のソースと圧縮後のソースを UTF-8 バイトで測定し、両方に加えて削減率を表示するため、スクリプトがどれだけ小さくなったかを正確に確認できます。