gulp babel, exportaciones no está definido
Considere el siguiente código de ejemplo (¿y tal vez lo estoy haciendo mal?)
var FlareCurrency = {
};
export {FlareCurrency};
Tengo la siguiente tarea:
gulp.task("compile:add-new-currency-minified", function(){
return gulp.src('src/add-new-currency/**/*.js')
.pipe(babel())
.pipe(concat('Flare-AddNewCurrency.js'))
.pipe(uglify({"preserveComments": "all"}))
.pipe(gulp.dest('dist/minified/'));
});
Cuando corro esto obtengo lo siguiente:
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var FlareCurrency={};exports.FlareCurrency=FlareCurrency;
Por diversión, quería ejecutarlo en la consola, sí, sé que no hace nada, pero no esperaba ver esto:
Uncaught ReferenceError: exports is not defined(…)
La versión no minificada:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var FlareCurrency = {};
exports.FlareCurrency = FlareCurrency;
Lanza el mismo error. Ideas?
1 answers
Eso no es realmente un problema de babel, solo está tratando de ejecutar código CommonJS (transpilado desde ES6 export
) en el navegador sin preparación. CommonJS no se ejecuta en el navegador, debe usar una herramienta para empaquetarlo para el navegador, como Webpack o Browserify.
Simplemente por coincidencia esta semana creé un pequeño proyecto en Github que muestra una configuración de código Gulp + ES6 (usando export
) + Babel + Webpack: gulp-es6-webpack-example.
En mi ejemplo puede cargar código JS en el navegador de forma sincrónica (precargado) o asincrónica (cargado perezosamente).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-23 04:18:11