Javascript 是否未定义Browserify jQuery?
所以我知道如何手动修复这个问题,但这很烦人 我包括bootstrap dropdown.js,在函数的末尾是Javascript 是否未定义Browserify jQuery?,javascript,jquery,twitter-bootstrap,browserify,Javascript,Jquery,Twitter Bootstrap,Browserify,所以我知道如何手动修复这个问题,但这很烦人 我包括bootstrap dropdown.js,在函数的末尾是 }(jQuery) 在我的shim中,我将jquery设置为依赖项 'bootstrap': { "exports": 'bootstrap', "depends": { "jquery": '$' } }, 这似乎是使用$的唯一方法,但由于下拉列表的末尾有jQuery,因此控制台显示 ReferenceError: jQuery is not
}(jQuery)代码>
在我的shim中,我将jquery设置为依赖项
'bootstrap': {
"exports": 'bootstrap',
"depends": {
"jquery": '$'
}
},
这似乎是使用$
的唯一方法,但由于下拉列表的末尾有jQuery,因此控制台显示
ReferenceError: jQuery is not defined
}(jQuery);
将其更改为}($)代码>工作
所以我的问题是,是否有人有更好的想法,不用手动操作就可以更好地执行此操作,或者手动编辑脚本是最好的?我不认为我的解决方案接近最佳或理想,它无法回答我的问题,但如果有人有此问题,请按此方式执行,您可以将其作为一种临时解决方案来运行,而不会使项目停滞不前
大多数jQuery插件(如果不是所有的话)都是用这样的自调用函数编写的
(function($){
$.fn.function_name = function(x){};
})(jQuery);
我只是进入插件本身,将(jQuery)
更改为($)
如果仍然存在问题,请确保在package.json文件中定义了一个垫片,并且包含了带有require语句的jQuery插件。您可以使用global.jQuery=require(“jQuery”)
这是我的垫片:
},
"plugin": {
"exports": "plugin",
"depends": [
"jquery: $",
"bootstrap: bootstrap"
]
}
以及plugin.js的内部:
var $ = require('jquery')(window);
global.jQuery = require("jquery");
var bootstrap = require('bootstrap');
var plugin = require('plugin');
plugin();
它解决了我的问题。希望有帮助。:) 垫片
“/node_modules/jquery/dist/jquery.js”:{
“导出”:“$”
}
需要
var jQuery=$=require(“$”)
这应该涵盖使用
(function($){
$.fn.function_name = function(x){};
})($);
以及
(function($){
$.fn.function_name = function(x){};
})(jQuery);
如果让我猜的话,将“jquery”:“$”更改为“jquery”:“jquery”可能会有所帮助。不过,我很想知道确切的答案。请您在这里添加一些详细代码。当我们包含的jquery文件不正确时,就会发生这种情况。@Mahipt这确实会很痛苦,我知道您的感受。我所做的是编辑实际的插件脚本。我不喜欢这种方法,但它很有效。大多数插件都是使用自调用函数(函数($){$.fn.function_name=function(x){};})(jQuery)编写的
该代码允许jQuery关键字与$
一起使用,但由于某些原因,我必须手动将(jQuery)
更改为($)
。在它工作之后,我没有过多考虑,但也许我应该重新考虑一下代码>谢谢分享,我发现如果使用$
不起作用,那么在垫片中使用jQuery
通常会修复它。如果失败的话,肯定会提到这个。2018年,这个仍然有效。如何设置像您这样的垫片文件?有什么好处?
(function($){
$.fn.function_name = function(x){};
})(jQuery);