Javascript 尝试使用Uglify最小化代码时出现意外标记

Javascript 尝试使用Uglify最小化代码时出现意外标记,javascript,gulp,gulp-uglify,Javascript,Gulp,Gulp Uglify,我正在运行以下吞咽任务: 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(renam

我正在运行以下吞咽任务:

   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'));
});

这里有更多信息:

相关:谢谢@YongQuan。我没有使用
gulp babel
,所以看不出这有什么帮助。请你详细解释一下这些问题之间的关系。看,gulp uglify不支持es6,terser支持。谢谢你的评论和你的回答@pako。我不知道,
gulpuglify
仅仅是ES5。我使用的是TypeScript,所以我会要求它以ES5为目标。@Mark我刚刚看了一下
Terser
,似乎功能非常丰富,所以很想用它来代替。谢谢你的提示。