我正在尝试使用jquery-browserify模块将jQuery与browserify一起使用。我在client.js脚本中按如下方式引入了该模块:
var $ = require('jquery-browserify');
当我运行我的节点服务器时,在运行了Browserify之后,我遇到了“window未定义”的错误。我做错了什么?
我正在尝试使用jquery-browserify模块将jQuery与browserify一起使用。我在client.js脚本中按如下方式引入了该模块:
var $ = require('jquery-browserify');
自2.1.0版本起,jQuery已符合CommonJS标准。
var $ = require('jquery')
效果不错。 - ChrisBrowserify可以处理CommonJS模块和AMD模块,使用deamdify
转换器,因此现在不需要使用shim了。
需要明确的是,我只注意到JQuery 2.0.0支持AMD。
在 2.1.0
版本之前,jQuery 不符合 CommonJS 标准,也就是说它没有通过 module.exports = $
导出自己。
因此,你需要通过 browserify-shim 进行适配。
browserify-shim
可以动态适配任何版本的 jQuery 或者其他非 CommonJS 的库(比如 Zepto)。
具体配置方法请参见 readme。
另外,你也可以使用 jquery-browserify 作为替代方案,但这样会限制你使用其对应的 jQuery 版本。