JavaScript
gulp

gulp-uglifyで特定のコメントを残したままJavaScriptをminifyする

More than 3 years have passed since last update.

やりたいこと

  • hoge-source.jsをminifyしてhoge.jsにする
  • hoge-source.jsのファイル先頭にあるライセンス表記はminifyしても残したい

意外と同一ディレクトリ内にminifyして出す例が少なかったのでメモ。

やったこと

Gulpとgulp-uglifyを追加

% npm install --save-dev gulp
% npm install --save-dev gulp-uglify
% npm install --save-dev gulp-rename

gulp-renameなしで出力ファイル名指定するやり方が分からず…。

gulpfile.jsを作成

ポイントは、uglifyに {preserveComments: 'some'} を渡すと、

/*! 
  License
*/

のように「 ! 」を追加したブロックコメントを残してくれること。

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

var source = 'hoge-source.js';
var exportSource = 'hogejs';

gulp.task('minify', function() {
    gulp.src(source)
        .pipe(uglify({preserveComments: 'some'}))
        .pipe(rename(exportSource))
        .pipe(gulp.dest('.'));
});

実行

% gulp minify

これで、minifyされたhoge.jsが完成。