Mic*_*bry 9 javascript jquery twitter-bootstrap browserify
所以我知道如何手动修复它,但这很烦人!
我包括bootstrap dropdown.js,并在函数的末尾
}(jQuery);
在我的垫片中,我将jquery设置为依赖
'bootstrap': {
"exports": 'bootstrap',
"depends": {
"jquery": '$'
}
},
Run Code Online (Sandbox Code Playgroud)
看起来这是唯一可以使用的方法$,但是由于下拉列表在控制台显示的末尾有jQuery
ReferenceError: jQuery is not defined
}(jQuery);
Run Code Online (Sandbox Code Playgroud)
将其改为}($);工作.
所以我的问题是,有没有人有任何想法更好地做到这一点,而无需手动执行,或手动编辑脚本最好?
小智 11
您可以使用 global.jQuery = require("jquery")
这是我的垫片:
},
"plugin": {
"exports": "plugin",
"depends": [
"jquery: $",
"bootstrap: bootstrap"
]
}
Run Code Online (Sandbox Code Playgroud)
和plugin.js里面:
var $ = require('jquery')(window);
global.jQuery = require("jquery");
var bootstrap = require('bootstrap');
var plugin = require('plugin');
plugin();
Run Code Online (Sandbox Code Playgroud)
它解决了我的问题.希望能帮助到你.:)
我不认为我的解决方案接近最佳或理想,它没有回答我的问题,但如果有人遇到这个问题,就这样做,你可以让它工作,可能作为一个临时解决方案,让事情顺利进行,而不会停滞不前你的项目。
大多数(如果不是全部)jQuery 插件都是用这样的自调用函数编写的。
(function($){
$.fn.function_name = function(x){};
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
我只是进入插件本身并更改(jQuery)为($)
(function($){
$.fn.function_name = function(x){};
})($);
Run Code Online (Sandbox Code Playgroud)
如果仍然遇到问题,请确保在 package.json 文件中定义了填充程序,并且使用 require 语句包含了 jQuery 插件。