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
,似乎功能非常丰富,所以很想用它来代替。谢谢你的提示。