我在运行此命令时遇到错误
gulp.task('minify', function () {
return gulp
.src('public/app/js/myapp.bundle.js')
.pipe(uglify())
.pipe(gulp.dest('public/app/js/myapp.bundle.min.js'));
});
GulpUglifyError:无法缩小JavaScript引起:SyntaxError:意外的令牌:name(MenuItem)(行:1628,col:18,pos:53569)
该位置的代码是
setters: [],
execute: function () {
class MenuItem { // <-- line 1628
出了什么问题?
答案 0 :(得分:38)
UglifyJS does not currently support EcmaScript 6结构like classes。
您可能需要首先通过转发器步骤运行JavaScript,或者找一个知道如何处理ES6代码的缩写器。
旨在与ES6合作的UglifyJS分支现在在{npm}发布为uglify-es
。
&#39;更简洁&#39;是新的&#39; uglify-es&#39;。 &#39;丑化-ES&#39;不再保持。
https://www.npmjs.com/package/gulp-terser
npm install gulp-terser --save-dev
const gulp = require('gulp');
const terser = require('gulp-terser');
function es(){
return gulp.src('./src/index.js')
.pipe(terser())
.pipe(gulp.dest('./build'))
}
gulp.task('default', es);
答案 1 :(得分:4)
如果您遇到此问题并且实际上实际上是像Babel一样的转发器步骤,请确保在.babelrc
文件中包含正确的Babel预设。否则,Babel将按原样保留您的代码。
E.g。
{
"presets": ["es2015"]
}