¿Cuál es el propósito de Babel si ‘nunca estará listo para la producción’ según los autores?

Si decían que Babel no estaba listo para la producción, eso me sorprendería, pero al mismo tiempo, también estaría en desacuerdo.

babel-node, o el gancho “require” no se debe utilizar en producción, por ningún motivo .

Esa es una declaración completamente diferente.

El gancho require carga archivos, en tiempo de ejecución, los escanea para ver si son ES6, luego Babel los analiza y los compila, luego deja que Node analice el JS y lo ejecute.

Esto significa que su servidor Node usa MUCHA más memoria de la que normalmente usaría (porque contiene versiones ES6 de todo, versiones ES5 de todo y el AST requerido para convertir cada archivo en la versión ejecutable). También significa que Babel está transpilando código en vivo, ya que Node intenta cargarlo y ejecutarlo. Si intentabas descargar una película, y el navegador te decía que tomaría más tiempo porque el servidor tiene que construir la película en el formato y tamaño que quisieras, específicamente … … te preguntarías por qué no pudo hacerlo antes. , para que no tenga que sentarse y esperar unos minutos, mientras que hizo algo que no tiene que hacer bien en este momento, cuando podría haberse salvado antes de tiempo, y simplemente transmitido a usted, dado que usted pedían la versión más solicitada y más común del archivo.

Babel-Node es solo para prototipos … y en este punto, es casi completamente irrelevante (casi), porque el Nodo 6/7 ya admite casi todo ES6 / 7.

El front-end está cambiando rápidamente. Tan pronto como Babel se llamara a sí mismo “listo para producción”, saldría una nueva característica y su base de código no lo admitiría (todavía).

Estar listo para la producción implica estabilidad. No puedo pensar en muchas cosas más volátiles que la web front-end.

Recuerde, Babel es un puente hacia un destino que aún no existe. Si no terminamos con un tiempo de ejecución ES6 + nativo en nuestros navegadores, ¿por qué molestarse en usar Babel? La idea general es que apuntamos a un tiempo de ejecución que no necesita ser transpilado.