尝试使用 Uglify 最小化代码时出现意外令牌

Unexpected Token when trying to minimize code using Uglify

我是运行以下gulp任务:

   var gulp = require('gulp');
   var uglify = require('gulp-uglify');
   var rename = require('gulp-rename');

    gulp.task('uglify', function(){
         gulp.src('htdocs/js/*.js')
             .pipe(uglify())
             .pipe(rename({suffix: '.min'}))
             .pipe(gulp.dest('dist'));
    });

当我这样做时,出现以下错误:

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

第一个 JavaScript 文件的第一行失败。它反对的行是:

import {removeScoreButtons} from './display.js';

如果你有 ES6 代码,你必须在 uglify 之前使用 gulp-babel 将它转译为 ES5。像这样:

var gulp = require('gulp');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var babel = require('gulp-babel');

gulp.task('uglify', function(){
     gulp.src('htdocs/js/*.js')
         .pipe(babel({
            presets: ['@babel/env']
         }))
         .pipe(uglify())
         .pipe(rename({suffix: '.min'}))
         .pipe(gulp.dest('dist'));
});

这里有更多信息:https://www.npmjs.com/package/gulp-babel