私の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
と (現在はコメントアウトされています)、ソースが醜くなり、ソースマップが期待どおりに作成されます。
条件を繰り返すときれいに感じられないので、縮小機能に置き換えてみましたが、動作が奇妙です。
- 相対パスを指定しない場合
sourcemaps.write
、js ファイルにはインライン ソースマップがあります。 - 相対パスを使用すると、ソースが醜くなり、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"))
ストリームに追加されました。filelog
fn の内部では 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.