ventajas usar sintaxis one functions funciones funcion flechas flecha example delgadas cuando color azul anonimas javascript gulp ecmascript-6 gulp-uglify

javascript - usar - Gulp uglify no puede manejar las funciones de flecha



sintaxis funcion flecha (6)

Esto es lo que uso para useref con angular y babel.

gulp.task(''concat-js'', [''your dependency task''],function(){ return gulp.src(''dev/dev_index/index.html'') .pipe(useref()) .pipe(gulpif(''*.js'', ngAnnotate())) // if you use angular .pipe(gulpif(''*.js'',babel({ compact: false, presets: [[''es2015'', {modules: false}]] }))) .pipe(gulpif(''*.js'', uglify({ compress: false }) .pipe(gulp.dest(''./'')); });

Estoy tratando de comprimir mi proyecto usando gulp-uglify , sin embargo, gulp parece lanzar el error. Error Unexpected token: punc () cuando encuentra una función de flecha en el código. ¿Hay algo que pueda hacer para solucionar esto? Gracias.

gulp-crash-test.js

// Function with callback to simulate the real code function test(callback) { if (typeof callback === "function") callback(); } // Causes a crash test(() => { console.log("Test ran successfully!"); }); // Doesn''t cause a crash test(function () { console.log("Test ran successfully!"); });

gulpfile.js

var gulp = require("gulp"); var concat = require("gulp-concat"); var uglify = require("gulp-uglify"); gulp.task("scripts", function() { gulp.src([ "./gulp-crash-test.js" ]).pipe( concat("gulp-crash-test.min.js") ).pipe( uglify().on(''error'', function(e){ console.log(e); }) ).pipe( gulp.dest("./") ); }); gulp.task("watch", function() { gulp.watch("./gulp-crash-test.js", ["scripts"]); }); gulp.task("default", ["watch", "scripts"]);


Las funciones de flecha son una característica de ES6. Babel (y otros) están diseñados para traducir ES6 a ES5 o antes como parte de su proceso de construcción. Por suerte hay complementos de Babel para Gulp y Grunt. Ejecuta Babel antes de uglificar.

https://www.npmjs.com/package/gulp-babel

Espero que esto lo guíe en la dirección correcta / alguien puede demostrar algún código.


No hay herramientas de compatibilidad (minificar) para la sintaxis de ES6. debería compilarse de forma sencilla después de compilar babel (es6 -> es5)

1.Instalar paquetes

npm install gulp-babel babel-preset-es2015

2. Cambie su código de la siguiente manera.

var gulp = require("gulp"); var concat = require("gulp-concat"); var uglify = require("gulp-uglify"); var babel = require(''gulp-babel''); gulp.task("scripts", function() { return gulp.src(["./gulp-crash-test.js"]) .pipe(babel({presets: [''es2015'']})) .pipe(concat("gulp-crash-test.minjs")) .pipe(uglify().on(''error'', function(e){ console.log(e); })) .pipe(gulp.dest("./")) });


Puede usar babel minify (anteriormente Babili) una biblioteca basada en babel para minimizar el código ES6 sin necesidad de transpilar:

Primero instale vía npm:

npm install --save-dev babel-preset-minify

Luego en su archivo trago:

var gulp = require(''gulp'') var babel = require(''gulp-babel'') gulp.task(''default'', () => { return gulp.src(''src/app.js'') .pipe(babel({presets: [''minify'']})) .pipe(gulp.dest(''dist'')) })

Utiliza babel como analizador, pero no hay transpilación.


Traté de babeli que un poco chupó. el tiempo de construcción me llevó 40s. Y no estoy buscando transpilar el código en es5 de todos modos

Prefiero usar uglify-es siga las descripciones https://www.npmjs.com/package/uglify-es https://www.npmjs.com/package/gulp-uglify

Mis tiempos de construcción son ahora 10s. Tengo la paciencia para esperar 10s.

Este es mi gulpfile

var gulp = require(''gulp''); var uglifycss = require(''gulp-uglifycss''); var htmlminifier = require(''gulp-html-minifier''); var useref = require(''gulp-useref''); var gulpif = require(''gulp-if''); var clean = require(''gulp-clean''); var uglifyes = require(''uglify-es''); var composer = require(''gulp-uglify/composer''); var minifyes = composer(uglifyes, console); .pipe(gulpif(''*.js'', minifyes()))


primero ''babel'' el archivo .js

var babel = require(''gulp-babel''); gulp.task(''babel-js'', () => gulp.src(''js/main.js'') .pipe(babel({presets: [''env'']})) .pipe(gulp.dest(''build/babel'')) );

https://www.npmjs.com/package/gulp-babel

que ''uglificarlo''

var uglify = require(''gulp-uglify''), pump = require(''pump''); gulp.task(''uglify-js'', function (cb) { pump([ gulp.src(''build/babel/main.js''), uglify(), gulp.dest(''build/js'') ], cb ); });

https://www.npmjs.com/package/gulp-uglify

Para ser instalado

npm install --save-dev gulp-babel babel-core babel-preset-env npm install uglify-es -g npm install pump