Unminify & Minify JavaScript Online — Free JS Beautifier

Unminify, minify and beautify JavaScript code instantly with our free online tool. Restore readable formatting from compressed code, minify for production, or concatenate multiple files. All processing happens in your browser — no code sent to any server.

Loading...
JavaScript Minification
Minify, unminify and beautify your JavaScript code with Terser. Free online tool to optimize, compress and format your JavaScript.

Features

Our JavaScript tool offers three main features:

Minify

Reduce the size of your JavaScript code by removing spaces, comments and unnecessary characters.

Unminify

Restore the readability of your minified JavaScript code by adding spaces and line breaks.

Beautify

Format and beautify your JavaScript code with customizable indentation (2 or 4 spaces, or tabs).

Package used

Terser
v5.24.0

Terser is a modern JavaScript compressor that optimizes the size and performance of your code.

Basic example

Input code

function calculateTotal(items) { let total = 0; for (let i = 0; i < items.length; i++) { total += items[i].price; } return total; } const products = [ { name: 'Laptop', price: 999 }, { name: 'Mouse', price: 25 } ]; console.log('Total:', calculateTotal(products));

Minified code

function calculateTotal(t){let e=0;for(let o=0;o<t.length;o++)e+=t[o].price;return e}const products=[{name:"Laptop",price:999},{name:"Mouse",price:25}];console.log("Total:",calculateTotal(products));
JavaScript optimization guide

Minification options

ECMAScript Version
Defines the target ECMAScript version for minification (ES5, ES2015, ES2017, ES2020, ES2022)

Examples by ECMAScript version:

Original code (ES2022)
const data = { name: 'test' }; const { name } = data; console.log(name);
ES2022
const{name:data}=data;console.log(data)
ES5
var data={name:'test'};var name=data.name;console.log(name)
Compression Level
Controls the aggressiveness of compression (conservative, normal, aggressive)
ConservativeConservative - Minimal compression, safer
NormalNormal - Balance between size and compatibility
AggressiveAggressive - Maximum compression, may break some code

Compression examples:

Original code
function calculateTotal(items) { let total = 0; for (let i = 0; i < items.length; i++) { total += items[i].price; } return total; }
Conservative
function calculateTotal(items){let total=0;for(let i=0;i<items.length;i++)total+=items[i].price;return total}
Normal
function calculateTotal(t){let e=0;for(let l=0;l<t.length;l++)e+=t[l].price;return e}
Aggressive
function e(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n].price;return t}
Preserve Class Names
Preserves CSS class names in string literals

Comparison with/without option:

Original code
element.className = 'my-class'; element.setAttribute('class', 'another-class');
With preserveClassNames: true
element.className='my-class';element.setAttribute('class','another-class')
With preserveClassNames: false
element.className='a';element.setAttribute('class','b')
Difference
CSS class names are preserved in strings
Preserve Function Names
Preserves function names for debugging

Comparison with/without option:

Original code
function myFunction() { return true; } const obj = { myMethod() { return false; } };
With preserveFunctionNames: true
function myFunction(){return!0}const obj={myMethod(){return!1}}
With preserveFunctionNames: false
function a(){return!0}const obj={b(){return!1}}
Difference
Function names are preserved for debugging
Remove Console
Removes all console.log, console.warn, etc. calls

Comparison with/without option:

Original code
console.log('Debug info'); console.warn('Warning message'); const result = calculateTotal(items); console.log('Result:', result); return result;
With removeConsole: true
const result=calculateTotal(items);return result
With removeConsole: false
console.log('Debug info');console.warn('Warning message');const result=calculateTotal(items);console.log('Result:',result);return result
Difference
All console.* calls are removed
Remove Debugger
Removes debugger statements from code

Comparison with/without option:

Original code
if (condition) { debugger; return true; } function test() { debugger; return false; }
With removeDebugger: true
if(condition)return!0;function test(){return!1}
With removeDebugger: false
if(condition){debugger;return!0}function test(){debugger;return!1}
Difference
Debugger statements are removed
Beautify Options
Options for formatting and beautifying JavaScript (Beautify only, not for Minify/Unminify)

Indentation Size

Sets the number of spaces or tabs for indentation during Beautify

Original code
function test(){return true;}
With 2 spaces
function test() { return true; }
With 4 spaces
function test() { return true; }
Difference
Indentation is customizable only for Beautify. Unminify always uses 2 spaces.

Indentation Type

Use spaces or tabs for indentation during Beautify

Original code
function test(){return true;}
With spaces
function test() { return true; }
With tabs
function test() { return true; }
Difference
Spaces are more standard, tabs may be preferred according to your code conventions.

How to Unminify JavaScript Online

JavaScript unminification (also called beautification or formatting) restores readable formatting to compressed code. Paste any minified JavaScript into our tool, and it will add proper indentation, line breaks, and spacing. This is essential for debugging production code, understanding third-party scripts, or reviewing obfuscated libraries. Our tool preserves all functionality while making the code human-readable.

JavaScript Beautifier vs Unminifier — What's the Difference

Both terms refer to making minified code readable, but with subtle differences. A beautifier applies consistent formatting rules (indentation style, brace placement) to any code. An unminifier specifically targets minified code, restoring structure that was stripped during compression. Our tool handles both — paste your code and click Unminify or Beautify depending on your needs.

Concatenating JavaScript Files

Combining multiple JavaScript files into one reduces HTTP requests and can improve page load performance. Use our concatenation feature to merge multiple JS files, then optionally minify the result for maximum compression. This is especially useful for projects that don't use a bundler like Webpack or Rollup.

Frequently Asked Questions

Everything you need to know about JavaScript minification, unminification and beautification

Why minify JavaScript?

JavaScript minification reduces file sizes by removing whitespace, comments and shortening variable names. This improves page load times and reduces bandwidth costs. Typical size reductions range from 30% to 70%.

How does JavaScript minification work?

Our tool uses Terser, the industry-standard JavaScript compressor. It removes whitespace, comments, and unnecessary characters while optionally mangling variable names. The minified code is functionally identical to the original.

Can I unminify JavaScript code?

Yes, paste any minified JavaScript into our tool and click Unminify. The tool restores indentation and formatting to make the code readable. Note that variable names shortened during minification cannot be restored to their original names.

Is my code processed securely?

All JavaScript processing happens entirely in your browser. No code is sent to any server. Your source code remains completely private and secure.

What is the difference between minify and beautify?

Minification compresses code by removing all unnecessary characters to reduce file size. Beautification (or formatting) adds consistent indentation and spacing to make code readable. They are opposite operations — our tool supports both.

How much file size reduction can I expect?

Typical reductions range from 30% to 70% depending on code style and comment density. Code with many comments and long variable names will see larger reductions. Our tool shows the exact compression ratio after processing.

Can I concatenate JavaScript files?

Yes, use our concatenation feature to merge multiple JavaScript files into a single file. You can then minify the combined result for maximum file size reduction. Click the concatenate button in the toolbar to get started.

What JavaScript versions are supported?

Our tool supports all modern JavaScript including ES6+, ES2020, ES2021 and beyond. It handles arrow functions, template literals, destructuring, async/await, optional chaining and all modern syntax.

Other minification tools

Unminify & Minify JavaScript Online — Free JS Tool