Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否未定义Browserify jQuery?_Javascript_Jquery_Twitter Bootstrap_Browserify - Fatal编程技术网

Javascript 是否未定义Browserify jQuery?

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

所以我知道如何手动修复这个问题,但这很烦人

我包括bootstrap dropdown.js,在函数的末尾是

}(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);