私の現在のワークフローでは、browserifyバンドルを作成する必要がありますが、ファイルの先頭にnon-commonjs jsライブラリを連結して、また、HTTPリクエストの数とjsファイルのサイズを減らします。 (これらのライブラリのいくつかは他のバンドルでも必要かもしれません)JSストリームをマージする際のソースマップの保存(browserifyバンドルにlib依存関係を連結する)
私は現在、browserifyバンドルを作成し、必要なライブラリを出力ファイルの先頭に連結するgulpタスクを持っていますが、ストリームをマージする、私のソースマップが壊れている、そしてWebインスペクタで。結果として得られるマップは、個々のjsモジュールではなく、事前にuglifiedされたbrowserifyバンドルのみを表示します。
var gulp = require("gulp"),
buffer = require('vinyl-buffer'),
gulpif = require("gulp-if"),
sourcemaps = require("gulp-sourcemaps"),
merge = require('merge-stream'),
concat = require('gulp-concat'),
uglify = require("gulp-uglify")
livereload = require("gulp-livereload");
// compile scripts
gulp.task("scripts", function() {
"use strict";
// Iterate over bundles
var tasks = config.browserifyBundles.map(function(item){
// Use entry file for output file name
var outputName = item.mainfile.replace(/^.*[\\\/]/, '');
var browserifyStream = browserify({
entries: item.mainfile,
debug: env !== "production"
}).bundle()
.on("error", notify.onError())
.pipe(source(outputName))
.pipe(buffer())
.pipe(gulpif(env !== "production", sourcemaps.init()))
.pipe(gulpif(env !== "production", sourcemaps.write()));
// Get files to concat stream from json array
var libStream = gulp.src(item.concat);
return merge(libStream, browserifyStream)
.pipe(gulpif(env !== "production", sourcemaps.init({loadMaps: true})))
.pipe(concat(outputName))
.pipe(uglify())
.pipe(gulpif(env !== "production", sourcemaps.write()))
.pipe(gulp.dest(config.projectDir + "js/"))
.pipe(notify("updated"))
.pipe(livereload());
});
// create a merged stream
es.merge.apply(null, tasks);
});
(つ以上が存在する場合、私のタスクはまた、いくつかのバンドルを構築するために設定JSON配列を読み込むことに注意してください)
私は事前にマージされたストリームからsourcemapsを保存することができます方法はありますか? loadmapsをtrueに設定しても動作していないようです。
また、健全性チェックとして、私のアプローチは合理的であると考えられますか?私は望みの結果を達成するためのすばらしく簡単な方法を見逃していますか?
http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles([タグ "の質問には、すべき『』タイトルには?"]を参照してください)、コンセンサスは "いいえ、彼らはすべきではありません"! –
お詫び申し上げます@AndreasNiedermair - 編集ありがとうございました – Gaffen