Babel.js et compatibilité IE

Je dois encore aujourd'hui coder du javascript compatible avec IE 11. Certains clients installent même ce navigateur sous Windows 10 à cause d'une addiction aux ActiveX. Mais comme j'en ai un peu marre (1) d'écrire du code en me privant des nouveautés ES6 ou (2) réécrire du code moderne à la sauce "vieille école" (j'ai fait ça ces dix dernières années, ça commence un peu à me courir), j'ai décidé de jeter un œil à Babel. petit topo introductif.

Je ne suis pas fan de node.js et de sa gestion des dépendances qui devient vite un gros foutoir étalé sur plusieurs centaines de Mo en local, mais il faut avouer que Babel.js a de quoi séduire. C'est un transpileur : il convertit du code javascript moderne en version compatible avec certains paramètres que vous lui indiquer. Il permet ainsi de générer du code compatible avec d'anciens navigateurs web à partir de code moderne utilisant les classes, les promesses, etc.

npm install -g @babel/core @babel/cli @babel/preset-env @babel/polyfill
Installation de babel. Voir aussi comment faire du node.js global local.
{
    "presets": [
        [
            "/path/to/node_modules/@babel/preset-env",
            {
                "targets": {
                    "ie": "11"
                },
            }
        ]
    ],
    "plugins": []
}
Fichier de configuration .babelrc à placer dans le projet.
babel File1.js File2.js --out-file FileOut.js
Commande de build : concaténation avec transpilation vers un fichier de sortie.