Javascript $不是一个函数。主干、jQuery和Browserify

Javascript $不是一个函数。主干、jQuery和Browserify,javascript,jquery,node.js,backbone.js,browserify,Javascript,Jquery,Node.js,Backbone.js,Browserify,我正在使用browserify创建节点应用程序,以模块化前端代码。 不幸的是,我无法使主干网正常工作,因为它会抛出以下错误: Uncaught TypeError: Property '$' of object #<Object> is not a function 使用browserify时,主干网似乎找不到jQuery。只需手动设置主干网。$=window。$。主干在全局变量(通过捕获this定义)中查找jquery,browserify可能不在全局上下文中运行脚本(这与Com

我正在使用browserify创建节点应用程序,以模块化前端代码。 不幸的是,我无法使主干网正常工作,因为它会抛出以下错误:

Uncaught TypeError: Property '$' of object #<Object> is not a function

使用browserify时,主干网似乎找不到jQuery。

只需手动设置主干网。$=window。$。主干在全局变量(通过捕获
this
定义)中查找jquery,browserify可能不在全局上下文中运行脚本(这与CommonJS一致)。

您可能需要为主干添加一个垫片,您在某处有配置吗?您所说的“配置”是什么意思?主干应该与CommonJS模块一起工作,这样就不需要shim。在导致错误的行上放置断点时,$undefined吗?这是执行错误的代码片段。是的,对不起。我已经更新了链接。它成功了,但我为什么要这么做?jQuery是全局变量,因为它是从另一个文件加载的。我认为会发生如下情况:,即browserify将模块包装在函数中,并在其他上下文(如模块上下文)上调用它。如果主干使用了
窗口。$
引用它,但主干使用
此。$
捕获jQuery。
var _ = require('underscore'),
    Backbone = require('backbone');

// Here, jQuery works fine.
$(function() {
  Backbone.history.start();
});