Outils

Minifieur JavaScript

Minifiez du JavaScript avec terser — compression, renommage des noms, cible ECMAScript — et voyez la taille avant et après gzip.

S’exécute dans le navigateurConvertisseurs de code9,3 k
Gratuit

Entrée

0 B

Résultat

Le résultat apparaîtra ici.

terser est le minifieur que webpack exécute par défaut en mode production, et celui que proposent Vite et Rollup quand vous voulez la sortie la plus compacte. Collez un script pour le faire compresser de la même façon : code mort et expressions redondantes supprimés, noms locaux raccourcis, espaces retirés. Le résultat indique le gain en octets et, lorsque le navigateur prend en charge CompressionStream, la taille gzippée avant et après — le chiffre qui transite réellement sur le réseau.

Comment ça marche

  • La compression réécrit le code en deux passes — constantes intégrées, branches inaccessibles supprimées, expressions simplifiées — et le renommage raccourcit les noms des variables locales et des paramètres.
  • Les noms de premier niveau sont laissés tels quels à moins que vous ne marquiez l’entrée comme module ES, car les variables globales d’un script classique peuvent être utilisées par d’autres scripts de la page.
  • Les commentaires qui commencent par /*! ou contiennent @license ou @preserve sont conservés, comme l’exigent la plupart des licences.
  • La version d’ECMAScript détermine ce que terser peut émettre — ES5 n’obtient jamais de fonctions fléchées — mais la syntaxe plus récente que vous avez écrite vous-même n’est pas transpilée vers le bas.

Où vont vos données

Nulle part. Cet outil s’exécute entièrement dans votre navigateur : le texte collé est traité par la page, jamais transmis à un serveur ni consigné dans un journal.

Cet outil est gratuit et ne demande aucun compte. Ses résultats n’existent que dans la page ouverte et ne sont enregistrés nulle part.

Ce que ça coûte

Cet outil est gratuit, sans connexion ni points.

Questions fréquentes

Pourquoi le gain après gzip est-il plus faible que le gain brut ?
Parce que gzip supprime déjà une grande partie de la même redondance : les espaces répétés et les identifiants longs et répétés se compressent très bien. Un gros gain brut se réduit donc une fois les deux côtés gzippés. Ce chiffre plus petit reste réel, et c’est celui à utiliser pour estimer la taille transférée.
La minification peut-elle casser mon code ?
Les transformations par défaut de terser sont conçues pour être sûres pour du JavaScript standard. Ce qui casse, c’est le code qui dépend des noms de fonctions ou de classes à l’exécution (Function.prototype.name, certains dispositifs d’injection de dépendances) ou qui lit sa propre source via toString(). Désactivez le renommage pour confirmer si les noms sont en cause.
Que fait la suppression des appels console ?
Elle retire console.log, console.warn et tous les autres appels console.* de la sortie compressée. Pratique pour un bundle de production ; nuisible si vous comptez sur console.error pour remonter les échecs depuis les navigateurs des utilisateurs. Elle ne s’applique que lorsque la compression est activée.
Peut-il minifier du TypeScript ou du JSX ?
Non, terser ne lit que du JavaScript et signalera la première annotation de type ou balise JSX comme une erreur de syntaxe. Compilez d’abord le TypeScript et le JSX avec tsc, esbuild ou Babel, puis minifiez le JavaScript qu’ils produisent.

L’open source derrière

Cet outil fonctionne grâce à terser/terser, publié sous licence BSD-2-Clause. Si vous avez besoin du même comportement dans votre propre programme, c’est cette bibliothèque qu’il faut utiliser.

terser/terser

Aussi appelé

  • minifier javascript
  • minifier js en ligne
  • terser en ligne
  • minifieur js
  • compresser javascript
  • uglify js