1

私のgulpfile.jsでは、リリース タスクでソースマップを縮小して有効にしようとしています。

構成変数に基づいて、さらにアクションをストリームにパイプしようとしています。コンディションのチェックは を使用していgulp-if-elseます。私の依存関係のセット(関連するもののみ)は以下のとおりです

var gulp = require('gulp');
var browserify = require('browserify');
//... elided
var through= require('through2');
var sourcemaps= require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var ifelse = require('gulp-if-else');

これが私が問題を抱えているコードです。3 つの呼び出しを個別に保持するifelse pipeと (現在はコメントアウトされています)、ソースが醜くなり、ソースマップが期待どおりに作成されます。

条件を繰り返すときれいに感じられないので、縮小機能に置き換えてみましたが、動作が奇妙です。

  1. 相対パスを指定しない場合sourcemaps.write、js ファイルにはインライン ソースマップがあります。
  2. 相対パスを使用すると、ソースが醜くなり、js には sourcemap コメントが指定されてapp.js.mapいますが、app.js.mapそれ自体は生成されません。
var minify = function() {
    var stream =  through({objectMode:true})
    stream
        .pipe(sourcemaps.init())
        .pipe(uglify())
        .pipe(sourcemaps.write("./"));
    return stream;
};

var bundledStream = through({objectMode:true});
bundledStream
    // Report compile errors
    .on('error', handleErrors)
    .on('end', reportFinished)
    // Use vinyl-source-stream to make the
    // stream gulp compatible. Specifiy the
    // desired output filename here.
    .pipe(source(entry + '.js'))
    // Specify the output destination
    .pipe(buffer())

    // uncommenting the following three lines works

    //.pipe(ifelse(!config.debug,function() {return sourcemaps.init()}))
    //.pipe(ifelse(!config.debug, uglify))
    //.pipe(ifelse(!config.debug,function() {return sourcemaps.write("./")}))


    // this works partially?!? but I don't know why. I'd like this version to work
    .pipe(ifelse(!config.debug, minify))


    .pipe(gulp.dest(config.destFolder));

私は gulp (そして実際にはノード) を拾い上げたところ、私が推論できないように見えるこの奇妙な動作に遭遇しました。誰かが私のためにそれを分かりやすく説明できれば、大きな助けになるでしょう。

更新: 完了gulpfile.js

UPDATE2: を追加しましgulp-filelogた。pipe(filelog("minify"))およびpipe(filelog("outer"))ストリームに追加されました。filelogfn の内部では 2 つのファイルを出力しますが、外部では 1 つのファイルのみを出力します。2 番目のファイルがドロップ/無視されるのはなぜですか? 私は何が欠けていますか?

[09:43:24] [minify] [1] [E:\....\Dashboard\app.js.map]
[09:43:24] [minify] [2] [E:\....\app.js]
[09:43:24] [outer] [1] [E:\....\Dashboard\app.js]
[09:43:24] [outer] Found [1] files.
[09:43:24] [minify] Found [2] files.
4

0 に答える 0