JavaScript Minifier
Quick access to coding tools
Go straight to the formatter, validator, encoder, generator, or developer utility you need.
Coding Tools
- URL Slug Generator
- Base64 Encoder/Decoder
- HTML Minifier
- CSS Minifier
- HTML Formatter
- CSS Formatter
- JS Formatter
- SQL Formatter
- JSON Viewer
- XML Minifier
- XML Formatter
- MD5 Encrypt/Decrypt
- JWT Token Encode/Decode
- HEX to RGBA Converter
- RGBA to HEX Converter
- Markdown Editor
- YAML Validator
- .htaccess Generator
- Cron Job Generator
- Color Palette Generator
- Git Ignore Generator
- Regex Generator
- XML Validator
- Docker Compose Generator
- Nginx Config Generator
- Gradient Generator
- Color Name Finder
- Color Extractor Tool
- Password Generator
- Password Strength Checker
- Link Preview
JavaScript Minifier — Reduce JS Bundle Size for Faster Page Performance
Of all the resources a web page loads, JavaScript is typically the most expensive — not just in file size, but in processing cost. Images can be deferred and lazy-loaded. CSS, once downloaded, is parsed quickly. JavaScript, by contrast, blocks the browser's main thread during download, parse, and execution. Every line of code has a cost that users pay before your page becomes interactive. Minifying your JavaScript removes everything that adds to that cost without adding to the functionality: comments, whitespace, verbose variable names, optional semicolons. The result is a smaller file that transfers faster, parses faster, and starts executing sooner — with behavior that's completely identical to the original.
This free online JavaScript minifier processes your code entirely in the browser. Paste any JavaScript file — your own application code, a utility script, or a library you need to compress — and get the minified output in seconds. Copy it or download it as a .min.js file ready for production.
What JavaScript Minification Removes — and the Order of Operations
JavaScript minification is a precise, multi-stage process, not a simple character removal pass. A proper minifier parses your code into an AST (Abstract Syntax Tree) to understand its structure before making any changes. This matters because JavaScript has context-sensitive grammar — a semicolon, a whitespace character, or a string that looks like a comment might be significant or insignificant depending on where it appears in the code. Working from an AST eliminates any ambiguity.
Stage 1 — Whitespace and comment removal: All whitespace between tokens (spaces, tabs, newlines) that isn't required by the grammar is removed. All // single-line comments and /* block comments */ are removed. This alone typically reduces file size by 20 to 35 percent.
Stage 2 — Variable and function name mangling: Advanced minifiers like Terser perform scope analysis to identify local variable names that are only referenced within a function or block. These can be safely renamed to single characters — longDescriptiveName becomes a, anotherVariable becomes b — across the entire scope without changing behavior. This step adds another 15 to 30 percent reduction on top of whitespace removal. Names that are exported or referenced from external code are never mangled.
What is never removed: String values, regular expression patterns, function logic, exported names, global variable references, and any character whose removal would change the program's observable behavior. Minifiers are conservative — when in doubt, they keep the code.
Why JavaScript File Size Has Such a Large Impact on Performance
JavaScript is unique among web resources in that the file size cost is paid twice: once during the network transfer, and again during parsing and compilation by the browser's JavaScript engine. A 500KB image takes time to download and then display. A 500KB JavaScript bundle takes time to download, then time to parse the source text into tokens, then time to compile those tokens into bytecode, then time to execute. On a high-end laptop, this is fast. On a mid-tier Android phone — which represents the median global user's device — this process can take three to five times as long.
This is why JavaScript bundle size is a first-class performance concern, not an afterthought. Minification reduces both the download cost and the parse/compile cost simultaneously, because a smaller file means fewer tokens to process. The measurable outcome is a faster Time to Interactive (TTI) — the point at which a page is both visually loaded and capable of responding to user input. TTI is a Core Web Vitals metric that Google uses as a page experience signal for search rankings.
To put it in concrete terms: a typical JavaScript file with reasonable commenting and formatting shrinks 30 to 50 percent through minification. A heavily commented file can see 60 to 70 percent reduction. Add Gzip or Brotli transfer compression on top and the over-the-wire size is often 80 to 90 percent smaller than the original. For a 300KB script file, that's potentially less than 40KB actually transmitted over the network.
How JavaScript Minification Fits Into a Production Workflow
The golden rule is identical to CSS minification: develop with readable code, deploy with minified code. You should never work directly in minified JavaScript — it's a one-way transformation designed for machines, not humans. Your source files, in version control, should always be the readable originals.
In build-tool projects (Webpack, Vite, Rollup, Parcel, or esbuild), JavaScript minification is handled automatically in production builds. Webpack uses Terser out of the box for production mode. Vite uses esbuild for minification by default. These tools also handle bundling, tree shaking, and code splitting alongside minification, so you get comprehensive optimization from a single build command.
In server-rendered applications without a front-end build tool, this online minifier fills the gap. A PHP or Python application that serves standalone JavaScript files can benefit from manually minifying those scripts before deployment. The resulting .min.js file is dropped into your assets directory and referenced from your HTML instead of the original.
For one-off tasks — a utility script for a static page, a bookmarklet, an inlined script you want to compress — this tool is faster than configuring a build pipeline. Paste, minify, copy, done.
Source Maps — Debugging Minified JavaScript Without Losing Your Mind
The trade-off of minified code is that it's effectively unreadable when you need to debug it. Variable names are single letters, everything is on one line, and error stack traces point to position 1:32847 instead of a meaningful line number. Source maps solve this entirely.
A source map is a separate .js.map file that contains a mapping from every position in the minified output back to the corresponding position in your original source file. When you load a page with source maps and open browser DevTools, the debugger automatically uses the map to show you the original, readable code with original variable names, comments, and line numbers — even though the browser is actually executing the minified version. You can set breakpoints in the original source, step through code, and read error messages that reference real file names and line numbers.
Modern build tools generate source maps automatically. If you're minifying manually and deploying to a production site where you don't want source maps publicly accessible, you can generate them and restrict access via server configuration — they'll still work in DevTools if you have access, but won't be downloaded by regular users.
Frequently Asked Questions About JavaScript Minification
eval() with string arguments that rely on specific variable names (which mangling can break), code that reads Function.prototype.name after renaming, and code that uses arguments.callee in strict mode. None of these are common in modern JavaScript. For standard ES5+ code, minification is safe. Test your minified output before deploying to production.
longVariableName to a) adds another 10 to 30 percent on top. A well-commented, verbosely named JavaScript file can easily see 60 to 70 percent total reduction. Combined with Gzip or Brotli transfer compression, the over-the-wire size is typically 80 to 90 percent smaller than the original uncompressed source.
.min.js file in the package is the minified version. For React, the production build automatically uses the minified package. You don't need to re-minify these — they're already optimized. Where minification is your responsibility is your own application code and any in-house libraries you've written. Your build tool handles this if you have a production build step configured.
.map file maps every position in the minified code back to the original source. With source maps configured on your server (or in DevTools), the browser's debugger will show you original file names, line numbers, and variable names. Error monitoring tools like Sentry support source maps to show you the original stack traces from production errors. Without source maps, debugging minified code means reading mangled identifiers — unpleasant but possible with enough patience.
npx terser input.js -o output.min.js -c -m. This tool is useful for quick one-off manual minification.