我想使用 Factor-bundle 来查找 browserify 入口点的公共依赖项并将它们保存到单个公共包中:
https://www.npmjs.org/package/factor-bundle https://www.npmjs.org/package/factor-bundle
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);
});
我试图弄清楚如何使用因子包作为插件,并为每个输入文件(即中的每个条目)指定所需的输出文件files
)
这个答案已经很晚了,所以您可能已经找到了这个问题的解决方案或解决方法。我回答这个问题是因为它非常类似于我的问题 https://stackoverflow.com/questions/23748841/create-separate-javascript-bundles-with-a-shared-common-library-using-browserify.
我可以通过使用 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
需要与入口文件具有相同的索引。
不幸的是,在此之后我还没有弄清楚如何对这些文件执行任何其他操作,因为我似乎无法访问因子包的流事件。因此,对于缩小等,可能还需要通过 browserify 插件来完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)