El archivo Babel se copia sin transformarse
Tengo este código:
"use strict";
import browserSync from "browser-sync";
import httpProxy from "http-proxy";
let proxy = httpProxy.createProxyServer({});
y lo he instalado babel-core
globalmente babel-cli
a través de npm. El punto es cuando intento compilar con esto en mi terminal:
babel proxy.js --out-file proxified.js
El archivo de salida se copia en lugar de compilarse (quiero decir, es el mismo que el archivo fuente).
¿Que me estoy perdiendo aqui?
Babel es un marco de transformación. Antes de 6.x, permitía ciertas transformaciones de forma predeterminada, pero con el mayor uso de las versiones de Node que admiten de forma nativa muchas características de ES6, se ha vuelto mucho más importante que las cosas sean configurables. De forma predeterminada, Babel 6.x no realiza ninguna transformación. Debes decirle qué transformaciones ejecutar:
npm install babel-preset-env
y correr
babel --presets env proxy.js --out-file proxified.js
o crear un .babelrc
archivo que contenga
{
"presets": [
"env"
]
}
y ejecútelo como lo hacía antes.
env
en este caso hay un ajuste preestablecido que básicamente dice que se debe compilar todo el comportamiento estándar de ES* en ES5. Si está utilizando versiones de Node que admiten algunos ES6, es posible que desee considerar hacer
{
"presets": [
["env", { "targets": { "node": "true" } }],
]
}
para decirle al ajuste preestablecido que solo procese cosas que no son compatibles con su versión de Node. También puede incluir versiones de navegador en sus objetivos si necesita compatibilidad con el navegador.
La mayoría de estas respuestas están obsoletas. @babel/preset-env
y "@babel/preset-react
son lo que necesitas (a partir de julio de 2019).
Tuve el mismo problema con una causa diferente:
El código que estaba intentando cargar no estaba en el directorio del paquete y Babel no transpila de forma predeterminada fuera del directorio del paquete.
Lo resolví moviendo el código importado, pero quizás también podría haber usado alguna declaración de inclusión en la configuración de Babel.