browserify 和因子捆绑依赖 ID

2024-03-23

我正在使用 browserify 和 Factor-bundle 来管理依赖项,理论上它应该工作得很好。我们在页面上有不同的端点,并且可以非常快速有效地运行因子包分割以进行缓存。

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

除非有解决方法,否则在问题得到解决之前,这似乎会使因子束完全无用。有没有办法在此期间手动拆分常见依赖项?或者甚至是一种以减少容量使用因子束的方法?

EDIT

这是我当前的 gulp 构建脚本:

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;
    });
});

这是带有因子包的版本:

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/'));
    });
});

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

browserify 和因子捆绑依赖 ID 的相关文章