3

次のような一気飲みのタスクがあります。

gulp.task('compressjs', function() {
    gulp.src('local/**/*.js')
    .pipe(sourcemaps.init())
    // purpose compress here is only to give better error report
    .pipe(uglify())
    .pipe(concat('all.min.js'))
    .pipe(wrap('(function(){"use strict"; <%= contents %>\n})();'))
    // compress here to get best final compression
    .pipe(uglify())
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('public/app'));
});

この gulp タスクは以下を使用します。

  • がぶ飲みする
  • ガルプラップ
  • gulp-concat
  • gulp-sourcemaps

上記のすべてが正常に実行されています。しかし、それにはgulp-uglify独自のwrap機能が備わっているようです。gulp-uglify関数を使用してスクリプトをラップするにはどうすればよいですか?

4

1 に答える 1

-1

簡単な答え: できませんし、すべきではありません。Gulp の哲学は、1 つのタスクは 1 つのことだけを行うべきだというものです。したがって、セットアップは実際には完全に問題ありません。したがって、構成に固執してください。

もう少し長い回答:gulp-uglifyjsオリジナルでできるすべてのuglifyこと (ラッピングなどを含む) を可能にするプラグインという名前のプラグインがあります。ただし、Gulp コミュニティによって、「Gulp が本来あるべき方法で」ではなく、複製であるとしてブラックリストに登録されています。

コードは次のようになります。

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

gulp.task('scripts', function(){
   return gulp.src('./app/**/*.js')
       .pipe(uglify({
           wrap: true
        }))
        .pipe(gulp.dest('./dest'));
});

Uglify によるラッピングも非常に独断的です。つまり、自分で何かを追加することはできず、そのモジュール ラッパーに固執する必要があります。

だから、言ったように:あなたのセットアップは実際に行くべきものです;-)

ところで:パフォーマンス上の理由から、私はuglify()一度だけ呼び出します

于 2015-04-27T08:42:14.673 に答える