gulp-uglifyで圧縮時に変数/関数名を圧縮させない

参考


意外と調べても情報が出てこなかったのでメモです。

gulp-uglifyを使ってJSファイルを圧縮すると定義している変数名や関数名も圧縮されてアルファベット1文字等になります。
圧縮したJSファイル内でのみ呼び出される変数・関数であれば良いのですが、外部からも呼び出したいというパターンもあると思います。特に関数。

変数名や関数名を保持したい場合は、gulp-uglify実行時に以下の用にオプションを指定してあげればOKです。

(gulpfile.js例)

var gulp = require('gulp');
var uglify = require('gulp-uglify');

var uglify_option = {
    keep_fnames: true,  // function名を圧縮させない場合に指定
    mangle: false       // 変数名を圧縮させない場合に指定
}
gulp.task("default", function() {
    return gulp.src('src/*.js')
      .pipe(uglify(uglify_option))
      .pipe(gulp.dest('dest'));
});