我有一个使用browserify构建(捆绑)的项目。它支持不同语言环境(不同语言)的一些功能。目前,所有语言环境都使用commonJS
require
连续加载:
exports.a = require('./a')
exports.b = require('./b')
exports.c = require('./c')
...
但是,正如您所料,捆绑包变得非常大,而典型用户一次只使用一个区域设置。案例是以某种方式对包进行参数化。问题是:如何做到最佳方式。
我想到的蛮力是提供带有语言环境列表的输入参数,生成一个节点模块,该模块只需要选择的语言环境并对其运行browserify。但这是一个讨厌的蛮力,寻找别的东西。
是一些转换,例如 globify ,它们允许篡改选定的文件路径通配符。但我不确定在这种情况下是否可以使用它。
browserify中还有partitioning: factor-bundle 和 partition-bundle 。在这种情况下,我正在分析分区包:创建可以在浏览器运行时加载的语言环境的映射。但是没试过。
我很欣赏在这种情况下什么是一个好的解决方案的暗示。