GulpUglifyError: unable to minify JavaScript Caused by: SyntaxError: Unexpected token name «k», expected punc «;»

10,598

Solution 1

Following this answer, what I found was that I tried to compile code that was not parsable with the ugilfy version that I had. Try using ugifly-es instead of pure uglify package:

const uglify = require("gulp-uglify");

To:

const uglify = require("gulp-uglify-es");

And make sure you have the package installed.

Also, if you don't want to use unsupported package, take a look at this answer as it covers your issue:

Solution 2

If you use ES6 syntax, or a filter than parses your code into ES6 (like recent versions of gulp-coffee), gulp-uglify does not support that.

You can replace gulp-uglify by terser, which supports ES6.

https://www.npmjs.com/package/terser

Share:
10,598
vikrant chauhan
Author by

vikrant chauhan

Updated on June 15, 2022

Comments

  • vikrant chauhan
    vikrant chauhan about 2 years

    I am getting some strange error, but in order to suppress these error I have to change everything where I am getting error?

    //gulp file code
    var fs = require('fs');
    var path = require('path');`enter code here`
    var merge = require('merge-stream');
    var gulp = require('gulp');
    var concat = require('gulp-concat');
    var rename = require('gulp-rename');
    var uglify = require('gulp-uglify');
    var sourcemaps = require('gulp-sourcemaps');
    var gutil = require('gulp-util');
    
    
    
    gulp.task('css',function()
    {
    
    return gulp.src(['assets/css/*.css'])
        .pipe(sourcemaps.init())
    
        .pipe(sourcemaps.write())
        .pipe(uglify())
        .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
        .pipe(concat('all.css'))
        .pipe(gulp.dest('build/css'))
    
    })
    gulp.task('js',function()
    {
    
    return gulp.src(['shared/*.js','controller/*.js','directives/*.js','services/*.js'])
        .pipe(sourcemaps.init())
    
        .pipe(sourcemaps.write())
        .pipe(uglify())
        .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
        .pipe(concat('all.js'))
        .pipe(gulp.dest('build/js'))
    
    })
    
    gulp.task('default', ['css','js']);
    

    I tried to find the solution online, but no luck

    for (let k = 0; k < $scope.allCollctedTags.length; k++) 
    {
     $scope.customtags.push($scope.allCollctedTags[k].text);
    }
    

    but if I replace let with var then this error removed now next error come for the following code:

    $scope.multipleImages.push(...response.data.result.imageName);
    but if i write it as below then this error disappear
    $scope.multipleImages.push(response.data.result.imageName);
    
    also if i use underscore js then also it give me error 
    let temparray = _.difference($scope.multipleImages,$scope.extractedImagesBrowse);
    

    Now what to do, I can do these things in one or two files but for the whole project I cannot do it.

  • Iri
    Iri almost 5 years
    For some reasons gulp-uglify-es also throws errors, use gulp-uglifyes. Thank you!
  • suomi-dev
    suomi-dev about 4 years
    2020: Use terser / gulp-terser instead of uglify-es / gulp-uglifyes
  • Jorge Valvert
    Jorge Valvert almost 3 years
    Actually the right module is gulp-terser, then you can add terser() to the gulp task (.pipe(terser())