2016-04-07 12 views
2

私はclasses syntaxを使用して、基本的なJavaScriptを書いてuglify it with gulpしようとしますが、このエラーを取得しています:JavaScriptクラスをいかに醜くするのですか?

events.js:72
throw er; // Unhandled 'error' event

私は単にMozillaのWebサイトからサンプルコードを使用:

class Polygon { 
    constructor(height, width) { 
    this.height = height; 
    this.width = width; 
    } 
} 

そして、私について何も特別なのgulpファイル - 任意の非クラスのjsのために完全に動作します:

// Include gulp 
var gulp = require('gulp'); 

// Include Our Plugins 
var jshint = require('gulp-jshint'); 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var rename = require('gulp-rename'); 

// Lint Task 
gulp.task('lint', function() { 
    return gulp.src('js/*.js') 
     .pipe(jshint()) 
     .pipe(jshint.reporter('default')); 
}); 

// Concatenate & Minify JS 
gulp.task('scripts', function() { 
    return gulp.src('js/*.js') 
     .pipe(concat('all.js')) 
     .pipe(gulp.dest('dist/js')) 
     .pipe(rename('all.min.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('dist/js')); 
}); 

// Watch Files For Changes 
gulp.task('watch', function() { 
    gulp.watch('js/*.js', ['lint', 'scripts']); 
    gulp.watch('scss/*.scss', ['sass']); 
}); 

// Default Task 
gulp.task('default', ['lint', 'scripts', 'watch']); 
+6

クラスはECMAScript6でのみ使用できます。お使いの環境がES6をサポートしていますか? –

+0

あなたはどの環境を参考にしていますか?コードは私のブラウザで期待どおりに動作し、lintを渡します。 –

+0

env実行中のGULP –

答えて

4

当時、私はworkaroでこれを解決しましたund transpiling to ECMA 5 with Babelによって。

その後、私のノード環境に問題はなかったことがわかりました。そのコメントは私に信じられていましたが、実際はthe default uglify branch used in gulp-uglify doesn't support ECMA 6 yetでした。

代わりにharmony branch of UglifyJS2を使用するか、またはnpmラッパーuglify-js-harmonyを使用するのが正しい解決策でした。

関連する問題