Browserify - global vars

时间:2015-07-28 22:49:16

标签: javascript browserify

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'))?

1 个答案:

答案 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