如何以编程方式使用factorify与browserify?

 阿加芬散阿加芬散 发布于 2023-01-19 16:44

我想使用factor-bundle来查找我的browserify入口点的公共依赖项,并将它们保存到一个公共包中:

https://www.npmjs.org/package/factor-bundle

因子包文档使得在命令行上看起来很容易,但是我想以编程方式进行,我正在努力解决这个问题.

我当前的脚本是这样的(我正在使用reactify来转换react的jsx文件):

var browserify = require('browserify');
var factor = require('factor-bundle')
var glob = require('glob');

glob('static/js/'/**/*.{js,jsx}', function (err, files) {     
  var bundle = browserify({
    debug: true
  });

  files.forEach(function(f) {
    bundle.add('./' + f);
  });
  bundle.transform(require('reactify'));

  // factor-bundle code goes here?

  var dest = fs.createWriteStream('./static/js/build/common.js');
  var stream = bundle.bundle().pipe(dest);
});

我试图弄清楚如何使用factor-bundle作为插件,并为每个输入文件指定所需的输出文件(即每个条目files)

1 个回答
  • 这个答案已经很晚了,所以很可能你已经找到了解决方案或解决了这个问题.我正在回答这个问题,因为它与我的问题非常相似.

    我能够通过使用factor-bundle作为browserify插件来实现这一点.我没有测试你的具体代码,但模式应该是相同的:

    var fs = require('fs'),
        browserify = require('browserify'),
        factor = require('factor-bundle');
    
    var bundle = browserify({
        entries: ['x.js', 'y.js', 'z.js'],
        debug: true
    });
    
    // Group common dependencies
    // -o outputs the entry files without the common dependencies
    bundle.plugin('factor-bundle', {
        o: ['./static/js/build/x.js', 
            './static/js/build/y.js', 
            './static/js/build/z.js']
    });
    
    // Create Write Stream
    var dest = fs.createWriteStream('./static/js/build/common.js');
    
    // Bundle
    var stream = bundle.bundle().pipe(dest);
    

    factor-bundle插件获取输出选项o,这些输出选项需要与条目文件具有相同的索引.

    不幸的是,在此之后我还没弄清楚如何对这些文件做任何其他事情,因为我似乎无法访问factor-bundle的流事件.因此,对于缩小等,可能还需要通过browserify插件来完成.

    2023-01-19 16:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有