I'm a little confused on how Browserify works by default.
If I have a script that defines a global variable, such as in jQuery (window.$
), and I call require('jquery')
, wouldn't that variable automatically be assigned to the global scope? In that case, why would I need to manually assign that variable to the global scope in my code (i.e. window.$ = require('jquery')
)?
答案 0 :(得分:1)
当你使用require(...)引入jQuery时,它最终会在Browserify的封闭范围内定义,就像任何其他模块一样。您可以在显示时将其分配给全局变量,但建议使用它的方法是在需要jQuery的每个模块的顶部添加require()...就像您对其他任何模块一样模块。
因此,不是使用全局$变量,而是依赖模块会添加:
var $ = require('jQuery');
编辑: P.S.如果您以异步方式加载jQuery,那么在异步加载的脚本可用之前,您会遇到额外的复杂问题,即必须积极评估require(...)语句。我最近点击了这个并解释了我在这里提出的解决方案:How to use my own version of jQuery with browserified modules