2017-08-03 17 views
1

Bootstrap 4 Alphaの最新の変更以降、現在のGulpタスクでコア.jsファイルを縮小することはできません。 「GulpUglifyError:JavaScriptを縮小できません」というエラーが表示されます。Gulp:Uglifying Bootstrap 4 jsファイル

this questionに続いて、gulp-babelgulp-webpackを追加しましたが、機能しません。

私には何が欠けていますか? gulp.jsの

EXCERP:

var gulp = require('gulp'); 
var webpack = require('gulp-webpack'); 
var babel = require('gulp-babel'); 

// List of .js files to concatenate 
var js = { 
    jsSrc: [ 
     paths.src + "/js/alert.js", 
     paths.src + "/js/button.js", 
     paths.src + "/js/collapse.js", 
     paths.src + "/js/modal.js", 
     paths.src + "/js/util.js", 
     paths.src + "/js/custom.js" 
    ] 
}; 

gulp.task('scripts', function() { 
    return gulp.src(js.jsSrc) 
     .pipe(babel({presets: ['es2015']})) 
     .pipe(webpack()) 
     .pipe(uglify()) 
     .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); }) 
     .pipe(concat('bootstrap.min.js')) 
     .pipe(gulp.dest(paths.minJs)); 
}); 

// Create watch task 
gulp.task('watch', function() { 
    gulp.watch(paths.src + '/js/**/*.js', ['scripts']); 
}); 

答えて

2

だから、ブートストラップ4ベータ版は、おそらくES6を使用しており、現時点では(uglify)ES6コードを縮小化することはできません。

ほとんどの場合、ES6をES5に変換してからuglifyを実行する必要があります。

また、私はいくつかの読書をすばやく行いました。 出力をuglifyあなたに以下の行を追加することにより、さらにあなたのエラーをデバッグしよう:

uglify().on('error', function(err) { 
    gutil.log(gutil.colors.red('[Error]'), err.toString()); 
    this.emit('end'); 
}) 

これはあなたの問題の詳細なエラーを出力します。

+0

'.pipe(babel({presets:['es2015']}))'はやっていないものですか? – Tom

+0

はい、私はbabelがパイプされる前にwebpackを行うべきだと思います。 webpackはモジュール化の問題を最初に解決してから、トランスペアリングが発生するためです。 –

+0

@Meek答えをもう一度確認してください。私はあなたが経験している醜い問題をデバッグしようとするより詳細な呼び出しを加えました。 –

0

使用uglify-esgulp-uglify composerでそれをロードします。

var uglifyES6 = require('uglify-es'); 
var composer = require('gulp-uglify/composer'); 
var uglify = composer(uglifyES6, console); 

また、あなたはより良い/より簡単エラー処理にpumpを使用したい場合があります。

関連する問題