本文へスキップ
JS

JS圧縮・整形

JavaScriptを整形・圧縮。コメントと空白のみを除去し、コードを絶対に壊しません。

元のサイズ
218 B
圧縮後
182 B
削減率
−16.5%
/*! MyLib v1.0.0 | MIT License */ function greet(name) { const pattern = /^[a-z]+$/i; if (!pattern.test(name)) { return `Hello, stranger!`; } return `Hello, ${name}! Welcome.`; }

このツールはコメントと空白の除去のみを行い、識別子の短縮やコードの書き換えは一切行いません。改行はASI(自動セミコロン挿入)で意味が変わらないよう常に保持されます。本番ビルドの最大圧縮にはterserやesbuildの利用を推奨します。

JS圧縮・整形について

JS圧縮・整形ツールとは、JavaScriptソースをインデント付きで読みやすくしたり(Beautify)、空白やコメントを削ってファイルサイズを抑えたり(Minify)するユーティリティです。terserやesbuildのような本物のミニファイアは、識別子の短縮・デッドコード削除・式の書き換えといった高度な最適化を行いますが、それらを正しく行うには完全な構文解析とスコープ解析が必要で、少しでも取り違えると動くコードを静かに壊してしまうリスクがあります。 toco.toolsのJS圧縮・整形ツールは、あえてそこまで踏み込みません。行っているのは「コメントと空白の除去だけ」です。識別子は一切リネームせず、コードの構造や式も書き換えません。さらに、JavaScript特有のASI(Automatic Semicolon Insertion / 自動セミコロン挿入)というハザードに対応するため、元のソースに改行が1個以上あった箇所は必ず改行を1個だけ残すというルールを採用しています。`return` の直後で改行を消してしまうと `return x;` に変わってしまう(本来は `return;` の後に別文として `x;` が評価される)ような事故を、個々のケースを検出しようとする代わりに「改行は消さない」という単純で頑丈なルールで原理的に防いでいます。 文字列・テンプレートリテラル(`${...}` 補間を含む)・正規表現リテラルの中身はバイト単位で温存され、ライセンス表記に使われる `/*! ... */` 形式のバンコメントも圧縮後にそのまま残ります。「限界を正直に明示すること」自体をこのツールの信頼の根拠にしています。最大限の圧縮(識別子の短縮やデッドコード削除)が必要な本番ビルドには、terserやesbuildのような専用ツールの利用を推奨します。

使い方

  1. JavaScriptを貼り付け
  2. 圧縮または整形を選ぶ
  3. 圧縮率を確認して結果をコピー

よくある質問(FAQ)

他のJS圧縮ツールと何が違いますか?

識別子の短縮やデッドコード削除といった高度な最適化は行わず、コメントと空白の除去だけに絞っています。完全な構文解析なしにそれらを安全に行うことはできないためです。限界を正直に示すこと自体を信頼の根拠にしています。

改行を削除して壊れることはありませんか?

ありません。JavaScriptにはASI(自動セミコロン挿入)という仕組みがあり、`return` の直後などで改行を削ると意味が変わってしまうことがあります。このツールは元のソースに改行が1個以上あった箇所は必ず改行を1個だけ残すルールを採用しており、この種の破壊は原理的に起こりません。

識別子の短縮(本格的なMinify)はしませんか?

しません。識別子のリネームやデッドコード削除は、スコープを正しく理解した完全な構文解析がないと安全に行えず、少しでも取り違えるとコードが静かに壊れます。本番ビルドで最大限の圧縮が必要な場合は、terserやesbuildの利用をおすすめします。

ライセンスコメントは消えますか?

/*! で始まるバンコメントは圧縮後もそのまま残ります。それ以外の通常のコメント(// や /* ... */)は削除されます。

入力したJavaScriptは外部に送信されますか?

いいえ。圧縮・整形の処理はすべてブラウザ内のJavaScriptで完結し、toco.toolsのサーバーを含め、どこにも送信されません。