Minifier JavaScript en ligne — Minificateur JS

Minifiez du JavaScript avec notre outil en ligne gratuit. Compressez votre JS pour la production, ou concaténez et minifiez plusieurs fichiers .js en une seule passe. Le traitement reste dans le navigateur : aucune donnée n'est envoyée au serveur.

Chargement…
Minification JavaScript
Minifiez du JavaScript en ligne avec Terser. Compressez votre JS pour la production, avec un traitement dans le navigateur.

Fonctionnalités

Réduisez la taille de votre code JavaScript en supprimant les espaces, commentaires et caractères inutiles.

Minifier

Réduisez la taille de votre code JavaScript en supprimant les espaces, commentaires et caractères inutiles.

Package utilisé

Terserv5.51.2

Terser est un compresseur JavaScript moderne qui optimise la taille et les performances de votre code.

Exemple de base

Code source

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));

Code minifié

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));
Guide d'optimisation JavaScript

Ce que fait la minification JavaScript

La minification JavaScript réécrit le source sous une forme plus courte qui s'analyse et s'exécute de la même façon. Ce n'est pas une archive zip : le résultat reste du JavaScript, plus dense mais pas encodé. Un minificateur retire espaces et commentaires, condense la syntaxe équivalente lorsqu'il peut prouver que le changement est sûr (true → !0, certaines formes if en &&), et raccourcit les identifiants locaux. Vous livrez toujours un fichier .js que le navigateur exécute tel quel. Sur du source écrit à la main, cela coupe souvent 30–70 % des octets d'origine avant gzip ou Brotli. Les octets encore présents sur le réseau relèvent d'une autre couche. La minification réduit ce que le compresseur de transport voit ensuite ; gzip et Brotli restent utiles après déploiement. Elle ne supprime pas les modules inutilisés. C'est le tree shaking d'un bundler, avant Terser. Et ce n'est pas de l'obfuscation : les noms raccourcissent parce qu'ils sont locaux, pas parce que le flux de contrôle est masqué.

Comment FastMinify minifie le JavaScript

Cette page exécute Terser entièrement dans votre navigateur. Le pipeline est parse → compress → mangle → render ; la barre d'outils correspond à ces étapes. Parse construit un AST. Un JavaScript invalide échoue avec une erreur de syntaxe au lieu d'émettre un fichier cassé. Compress est la passe sémantique : élimination des branches mortes, constant folding, et suppression optionnelle de console.* et debugger (Supprimer console / Supprimer debugger, désactivés par défaut). Le niveau de compression règle l'agressivité : Conservateur conserve les noms et reste plus sûr ; Normal équilibre la taille ; Agressif autorise des réécritures plus fortes (y compris le mangling toplevel) qui peuvent casser du code dépendant des noms. La version ECMAScript indique à Terser quelle syntaxe il peut émettre. Choisir ES5 ne transpile pas les fonctions fléchées que vous avez déjà écrites. Mangle (Normal et Agressif) renomme les variables locales en identifiants courts. Conserver les noms de fonctions et Conserver les noms de classes protègent ces liaisons lorsque le code lit Function.prototype.name ou un nom de classe. Laissez-les activés (ou restez en Conservateur) si vous dépendez de eval ou new Function. Render imprime l'AST sans commentaires, avec les séparateurs minimaux acceptés par la grammaire. Le résultat est fonctionnellement identique, sauf si compress agressif plus mangling rencontre du code dépendant des noms. Coller-minifier convient à un fichier ou à quelques fichiers ; la concaténation sur cette page fusionne d'abord, puis enchaîne le même pipeline. Ce n'est pas un bundler. Une appli de production reste dans le build. Pour webpack, Vite ou la CI, voir le guide de minification JavaScript, qui utilise le même moteur avec une étape de build.

Options de minification

Version ECMAScript
Définit la version ECMAScript cible pour la minification (ES5, ES2015, ES2017, ES2020, ES2022)

Exemples par version ECMAScript :

Code original (ES2022)
const data = { name: 'test' }; const { name } = data; console.log(name);
ES2022
const data={name:"test"},{name}=data;console.log(name);
ES5
const data={name:"test"},{name:name}=data;console.log(name);
Niveau de compression
Contrôle l'agressivité de la compression (Conservateur, Normal, Agressif)
ConservateurConservateur : compression minimale, plus sûr
NormalNormal : équilibre entre taille et compatibilité
AgressifAgressif : compression maximale, peut casser certains codes

Exemples de compression :

Code original
function calculateTotal(items) { let total = 0; for (let i = 0; i < items.length; i++) { total += items[i].price; } return total; }
Conservateur
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}
Agressif
function e(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n].price;return t}
Préserver les noms de classes
Conserve les noms des classes ES6 quand les identifiants sont raccourcis

Comparaison avec/sans l'option :

Code original
function createUsers() { class User { constructor(name) { this.name = name; } } return [new User('a'), new User('b')]; }
Avec preserveClassNames: true
function createUsers(){class User{constructor(e){this.name=e}}return[new User("a"),new User("b")]}
Avec preserveClassNames: false
function createUsers(){class e{constructor(e){this.name=e}}return[new e("a"),new e("b")]}
Différence
Les noms des classes ES6 restent dans le résultat
Préserver les noms de fonctions
Conserve les noms de fonctions pour le débogage

Comparaison avec/sans l'option :

Code original
function myFunction() { return true; } const obj = { myMethod() { return false; } };
Avec preserveFunctionNames: true
function myFunction(){return!0}const obj={myMethod(){return!1}}
Avec preserveFunctionNames: false
function a(){return!0}const obj={b(){return!1}}
Différence
Les noms de fonctions sont conservés pour le débogage
Supprimer console
Supprime tous les appels console.log, console.warn, etc. Au niveau Agressif, console.log, console.info et console.debug sont supprimés même si cette option est désactivée.

Comparaison avec/sans l'option :

Code original
console.log('Debug info'); console.warn('Warning message'); const result = calculateTotal(items); console.log('Result:', result); return result;
Avec removeConsole: true
const result=calculateTotal(items);return result
Avec removeConsole: false
console.log('Debug info');console.warn('Warning message');const result=calculateTotal(items);console.log('Result:',result);return result
Différence
Tous les appels à console.* sont supprimés
Supprimer debugger
Supprime les instructions debugger du code

Comparaison avec/sans l'option :

Code original
if (condition) { debugger; return true; } function test() { debugger; return false; }
Avec removeDebugger: true
if(condition)return!0;function test(){return!1}
Avec removeDebugger: false
if(condition){debugger;return!0}function test(){debugger;return!1}
Différence
Les instructions debugger sont supprimées

Voir les options d’indentation Beautify

En savoir plus sur cette action

En savoir plus sur cette action

Concaténer des fichiers JavaScript

Sur Minifier JS, combinez plusieurs fichiers JavaScript dans l'ordre de la liste, puis minifiez le bundle complet avec vos options actuelles. Tout le traitement reste dans votre navigateur. Cette fonction est particulièrement utile pour les projets sans bundler comme Webpack ou Rollup.

Questions fréquentes sur la minification

Tout savoir sur la minification

Pourquoi minifier du JavaScript ?

La minification JavaScript réduit la taille des fichiers en supprimant espaces, commentaires et en raccourcissant les noms de variables. Les gains typiques se situent souvent entre 30 % et 70 % des octets d'origine, avant gzip.

Comment fonctionne la minification JavaScript ?

Notre outil utilise Terser. Il supprime les caractères inutiles et peut raccourcir les noms de variables. Le code minifié reste fonctionnellement identique.

Besoin de déminifier du JavaScript ?

Utilisez notre déminificateur JavaScript dédié pour restaurer une mise en forme lisible à partir de code compressé.

Besoin de beautifier du JavaScript ?

Utilisez Beautifier JavaScript pour formater votre code avec une indentation cohérente.

Mon code est-il traité en toute sécurité ?

Tout le traitement se fait dans votre navigateur. Aucun code n'est envoyé à un serveur.

Puis-je concaténer des fichiers JavaScript ?

Oui. Sur Minifier JS, cliquez sur l'icône de concaténation au-dessus de l'éditeur d'entrée. Vous pouvez aussi déposer au moins deux fichiers .js, .mjs ou .cjs sur le panneau d'entrée. Les fichiers sont fusionnés dans l'ordre de la liste, puis le bundle complet est minifié avec vos options.

Comment fusionner plusieurs fichiers JS ?

Cliquez sur l'icône de concaténation dans la barre d'outils de l'éditeur d'entrée ou déposez plusieurs fichiers JavaScript valides sur l'éditeur de gauche. Réordonnez-les dans la modale, puis cliquez sur Concaténer et minifier.

Les séparateurs de commentaires entre fichiers restent-ils après minification ?

Pas de façon fiable. Les marqueurs sont insérés avant la minification du bundle complet, donc les commentaires // nom-du-fichier et les espacements supplémentaires sont généralement supprimés.

Puis-je concaténer des fichiers sur Beautifier JS ?

Pas dans la version actuelle. La concaténation est disponible sur Minifier JS uniquement.

Vérifiez par vous-même

FastMinify traite vos données dans le navigateur. Inspectez l'onglet Réseau ou consultez notre porte de validation pour confirmer qu'aucune donnée ne quitte votre appareil.

Minifiez JavaScript, CSS, HTML, JSON, XML, SVG et d’autres formats pour livrer moins d’octets, avant gzip ou un CDN.