JavaScript

Convertir código JavaScript para Internet Explorer

A la hora de trabajar con código JavaScript uno de los principales problemas es la compatibilidad de los navegadores antiguos con los últimos estándares. En esto un navegador que destaca de forma negativa es Internet Explorer, aún ampliamente usado en algunos entornos. Una forma para solucionar el problema es reescribir el código para estos navegadores, pero es mas interesante usar traductores que nos pueden evitar este trabajo. Uno de ellos en Babel, con el que es posible convertir código JavaScript para Internet Explorer.

Probando el traductor on-line de Babel

Para pequeños trozos de código existe un traductor de código on-line en la página del proyecto Babel. Para usarlo solamente tenemos que acceder a la siguiente página https://babeljs.io/repl. Donde aparecerá una página como la que se muestra a continuación.

Babel on-line

En esta se puede ver a la izquierda unas opciones de configuración donde se pude indicar el estándar que tiene que cumplir el código generado. En el centro de la página se puede escribir el código que se desea traducir. A la izquierda de la ventana, prácticamente en tiempo real, se puede ver la traducción del código. En el ejemplo se pude ver como traduce tanto clases como funciones flecha sin problema. Concretamente ha traducido el siguiente código

class myClass{
 constructor(a, b){
      this.result = a + b;
    }
}

const myFunction = (a,  b) => a + b;

const result = [1, 2].reduce((a,b) => a + b, 0);   

Generando este otro

"use strict";

function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } }

function _classCallCheck(instance, Constructor) { if (!_instanceof(instance, Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

var myClass = function myClass(a, b) {
  _classCallCheck(this, myClass);

  this.result = a + b;
};

var myFunction = function myFunction(a, b) {
  return a + b;
};

var result = [1, 2].reduce(function (a, b) {
  return a + b;
}, 0);

Como se puede observar ha eliminado las clases y las funciones flecha que no estaban soportadas en versiones anteriores de JavaScript.

Babel en línea de comandos

En el caso querer usar Babel en la línea de comandos se puede instalar en cualquier ordenador con npm. Para lo que es necesario escribir

npm install @babel/core @babel/cli @babel/preset-env 

Lo que instalará babel y algunos plugins que son de interés para nuestra tarea. La configuración de la herramienta se guarda en un archivo con nombre babel.config.json que puede ser como el siguiente.

{
  "presets": [
    [
      "@babel/env",
      {
        "targets": { "ie": "11" },
        "useBuiltIns": "usage",
        "corejs": 2
      }
    ]
  ]
}

En el que indicamos que el objetivo de compilación es Internet Explorer 11. Una vez hecho esto, para convertir un archivo solamente tenemos que escribir

npx babel input.js -o output.js

donde imput.js es el arhcivo origina y output.js la salida.

Conclusiones

En esta entrada se ha visto convertir código JavaScript para Internet Explorer. Una tarea que con Babel no es complicado y permite utilizar código que no se había pensado para trabajar con navegadores antiguos.

Imagen de Monsterkoi en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Síndrome del objeto brillante en ciencia de datos: el error simétrico a los costes hundidos

Hace poco publiqué una entrada en la que trataba de un sesgo bien documentado: aferrarse…

4 días ago

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

6 días ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

7 días ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

2 semanas ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

2 semanas ago

Costes hundidos en ciencia de datos: cuándo mantener un modelo y cuándo migrar

Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…

3 semanas ago

This website uses cookies.