1

ES6 js ファイルをコンパイルしようとしています。私は gulp パイプラインで gulp-traceur と gulp-wepback を使用しています。

gulp.task('default', function () {
return gulp.src('js/app.js')
    .pipe(traceur())
        .pipe(webpack())
        .pipe(concat('app.js'))
            .pipe(rename({suffix: '.min'}))
            .pipe(uglify())
        .pipe(gulp.dest('build/js'));

gulp実行時。私はエラーを取ります: 予期しない予約語です。このファイル タイプを処理するには、適切なローダーが必要になる場合があります。「クラス」という単語を含む行。(ES6 構文)

これらのプラグインを一緒に使用する方法がわかりませんか?

4

1 に答える 1

2

このセットアップは'js/app.js'traceur に渡されますが、関連するファイルは渡されず、webpack はそのトランスパイルされたファイルから開始し、残りを通常の JS として処理します。実際、webpack が のトランスパイル バージョンを取得できるかどうかさえわかりませんapp.js

適切な方法は、メイン エントリ ポイントに webpack を使用し、webpack が遭遇するすべてのファイルをトランスパイルするように指示することです。また、gulp で事後処理を行うのではなく、Webpack の uglifyjs ロジックを使用することをお勧めします。

gulp.task('default', function () {
    return gulp.src('js/app.js')
        .pipe(webpack({
            module: {
                loaders: [{
                    test: /^(?!.*(bower_components|node_modules))+.+\.js$/,
                    loader: 'traceur'
                }]
            },
            plugins: [
                new webpack.optimize.UglifyJsPlugin()
            ]
        })
        .pipe(concat('app.js'))
        .pipe(rename({suffix: '.min'}))
        .pipe(gulp.dest('build/js'));
});
于 2015-02-04T04:36:59.310 に答える