如何使用最新的Browserify(6.x.x)创建供应商捆绑包
How to create vendor bundles with latest Browserify (6.x.x)?
好吧,我们已经使用Browserify 2.x一段时间了。我们正在进行一些重构,所以我们想尝试更新到最新的Browserify,以减少未来版本的飞跃。
不幸的是,处理外部捆绑包的方式发生了变化。在旧版本中,我们可以简单地告诉Browserify将哪些模块排除在捆绑包之外,并从另一个模块中要求它们——基本上就是这里所描述的。
从5.0.0版本开始,Browserify内部发生了一些重大变化。让我们以这个命令为例。debug
模块是NPM模块。
browserify -r debug -o vendor.js
在中运行此命令Browserify@4,输出文件如下所示:
require=(function... {
"debug":[function(require,module,exports){
module.exports=require('2Bvkwp');
},{}],
"2Bvkwp":[function(require,module,exports){
// actual code from debug module
},{}]
});
现在使用Browserify@5它看起来像这样:
require=(function... {
1:[function(require,module,exports){
// actual code from debug module
},{}]
});
为了完成这个等式,我有一个包含require('debug')
的简单文件,它与命令browserify -x debug -e index.js -o main.js
捆绑在一起。debug
模块的内部依赖关系设置为undefined
,这是可以的。
如果您查看prelude.js文件,则可以简单地使用先前定义的全局require
(存储在previousRequire
变量中)来查找当前捆绑包中未定义的模块。但是由于vendor.js
没有公开任何类似于debug
模块的内容,所以它不可能成功。
我所能找到的只是变更日志中的这一行:
散列已经消失,所以暴露:进行多导出捆绑包需要true或显式的暴露id
我找不到这到底意味着什么:(
您应该能够创建这样的供应商捆绑包:
browserify -r debug > vendor.js
然后创建这样的应用程序包:
browserify index.js -x debug > main.js
这很好用(我使用的是browserify@6.1.0
)。
基本上,即使require('debug');
在浏览器控制台中不起作用,只要捆绑包按照正确的顺序加载,browserify也可以在供应商捆绑包中找到debug
模块,即:
<script src="vendor.js"></script>
<script src="main.js"></script>
它不必向外部代码公开依赖项,只需向其他可浏览的捆绑包公开。
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何访问声音管理器2创建的声音对象
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 使用Facebook live API创建实时视频对象时的隐私设置
- 在动态创建的元素上获取对特定选择器的引用
- 如何创建带有插槽的vue js组件预加载程序
- 如何在创建键时引用来自同一对象的键
- 如何创建JSON数组
- 从html创建一个指令,该指令按类名应用函数
- 使用Javascript创建测验页面
- 更改使用Chart.js创建的图表中的轴线颜色
- JavaScript名称空间和对象创建
- JQuery对动态创建的对象进行选择
- 创建供应商.js与纯 npm 脚本捆绑包
- 如何使用最新的Browserify(6.x.x)创建供应商捆绑包