JavaScript整形・ミニファイ
JavaScript を整形、または本物の圧縮と変数名短縮でミニファイ
ローカル実行
loading…
このツールについて
JavaScript を一貫したインデントとスペーシングで整形します — ベンダリングされたバンドルをデミニファイして実際の挙動を読んだり、コンソールから貼り付けたコードを片付けたり。ミニファイアーは本物です。Terser がコードを AST にパースし、デッドコードを落とし、ローカル変数名を短縮し、コメントを取り除きます — バンドラーが本番で使うのと同じエンジンです。
ミニファイは AST ベースなので、正規表現ベースの「圧縮ツール」がやりがちな、動くコードを壊す事故が起きません。文字列、テンプレートリテラル、正規表現、ASI のエッジケースは本物のパーサーが扱います。構文エラーは壊れた出力を生む代わりに、位置付きで報告されます。
Terser は初めてミニファイするときにだけ読み込まれるためページは軽いままで、実行はすべてブラウザ内です — プロプライエタリなソースコードがマシンの外に出ることはありません。
よくある質問
- コードはどのくらい小さくなりますか?
- 手書きのコードなら gzip 前で通常 30–60% 減ります。空白、コメント、長いローカル名がそれだけの重さを占めているのです。すでにバンドルされたコードの縮小幅ははるかに小さくなります — 同じ変換を一度通り抜けているからです。
- ミニファイで挙動は変わりますか?
- 圧縮とマングリングは意味論を保ちます。リネームされるのはローカル名だけで、デッドコード除去は実行され得ないと証明できる分岐だけを取り除きます。Function.prototype.name や自身の関数の toString() に依存するコードが古典的な例外です。
- Web サイトの本番コードをアンミニファイできますか?
- フォーマッターは空白と構造を復元するので、制御フローは読めるようになります — ただし元の変数名とコメントは永遠に失われており、目にするのは a、b、c です。本格的なデバッグには、サイトが提供していればソースマップを使うほうがよいでしょう。
- TypeScript や JSX には対応していますか?
- いいえ — どちらも専用のパーサーが必要です。まず JavaScript にコンパイルし(tsc、esbuild)、その出力をここで整形またはミニファイしてください。