繁体   English   中英

Browserify jQuery没有定义?

[英]Browserify jQuery is not defined?

所以我知道如何手动修复它,但它很烦人!

我包括bootstrap dropdown.js,并在函数结束时

}(jQuery);

在我的垫片里面,我将jquery设置为依赖

'bootstrap': {
    "exports": 'bootstrap',
    "depends": {
        "jquery": '$'
    }
},

看起来这是使用$的唯一方法,但是由于下拉菜单最后有控制台显示的jQuery

ReferenceError: jQuery is not defined

}(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”:{“exports”:“$”}

要求
var jQuery = $ = require('$');

这应该涵盖使用的两个插件

(function($){
 $.fn.function_name = function(x){};
})($);

以及

(function($){
  $.fn.function_name = function(x){};
})(jQuery);

我不认为我的解决方案接近最佳或理想状态并且它没有回答我的问题但是如果有人有这个问题就这样做,你可以让它工作作为一个临时的解决方案来让事情顺利进行而不会停滞不前你的项目。

大多数(如果不是全部)jQuery插件都是用这样的自调用函数编写的。

(function($){
  $.fn.function_name = function(x){};

})(jQuery);

我只是进入插件本身并将(jQuery)更改为($)

(function($){
  $.fn.function_name = function(x){};

})($);

如果您仍然遇到问题,请确保在package.json文件中定义了一个填充程序,并且您将jQuery插件包含在require语句中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM