Javascript $不是一个函数。主干、jQuery和Browserify
我正在使用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
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();
});