我正在使用browserify创建节点应用程序来模块化前端代码。 不幸的是,我无法让Backbone工作,因为它抛出了这个错误:
Uncaught TypeError: Property '$' of object #<Object> is not a function
在此脚本之前加载jQuery:
var _ = require('underscore'),
Backbone = require('backbone');
// Here, jQuery works fine.
$(function() {
Backbone.history.start();
});
使用browserify时,似乎Backbone无法找到jQuery。
答案 0 :(得分:12)
只需手动设置Backbone.$ = window.$
即可。 Backbone在全局变量(通过捕获this
定义)中查找jquery,并且浏览器很可能不在全局上下文中运行脚本(这与CommonJS一致)。