browserify&factor-bundle依赖关系ID

我使用browserify和factor-bundle来pipe理依赖关系,理论上它应该很好。 我们在不同的页面之间有不同的端点,运行factor-bundle可以快速高效地进行caching。

问题是,我遇到了这个问题: https : //github.com/substack/factor-bundle/issues/13

除非有解决方法,否则在问题得到解决之前,这似乎使得因子束完全无用。 有没有办法在过渡时间手动分裂常见的依赖? 甚至是一种使用容量减less的因子包的方法?

编辑

这是我目前的gulp构build脚本:

var browserify = require('browserify'); var bromote = require('bromote'); var PassThrough = require('stream').PassThrough; var gulp = require('gulp'); var streamify = require('gulp-streamify'); var handleErrors = require('../util/handleErrors'); var source = require('vinyl-source-stream'); gulp.task('browserify', function () { var remote = { google_maps: { exports: 'google_maps', url : '//maps.google.com/maps/api/js?v=3.12&sensor=false&key=xxx&libraries=places&callback=?' } }; var sources = { entries: [ './a.js', './b.js', './c.js' ], bundles: [ './build/a.js', './build/b.js', './build/c.js' ] }; bromote(null, remote, function (err) { if (err) { return console.error(err); } for (var i = 0; i < sources.entries.length; i++) { var passThrough = new PassThrough(); browserify({ debug: true, entries : sources.entries[i], basedir : './js/' }) .bundle() .pipe(passThrough) .on('error', handleErrors) .pipe(source(sources.bundles[i])) .pipe(gulp.dest('./')); } return true; }); }); 

这是包含factor-bundle的版本:

 var browserify = require('browserify'); var bromote = require('bromote'); var PassThrough = require('stream').PassThrough; var gulp = require('gulp'); var streamify = require('gulp-streamify'); var factor = require('factor-bundle'); var handleErrors = require('../util/handleErrors'); var source = require('vinyl-source-stream'); gulp.task('browserify', function () { var remote = { google_maps: { exports: 'google_maps', url : '//maps.google.com/maps/api/js?v=3.12&sensor=false&key=xxx&libraries=places&callback=?' } }; var sources = { entries: [ './a.js', './b.js', './c.js' ], bundles: [ './build/a.js', './build/b.js', './build/c.js' ] }; bromote(null, remote, function (err) { if (err) { return console.error(err); } var passThrough = new PassThrough(); return browserify({ entries: sources.entries, basedir: './js/', fullPaths : false }) .plugin(factor, { o: sources.bundles }) .bundle({ debug: true }) .pipe(passThrough) .on('error', handleErrors) .pipe(source('common.js')) .pipe(gulp.dest('./build/')); }); });