Browserify jQuery is not defined?

Browserify jQuery is not defined?

本文关键字:defined not is jQuery Browserify      更新时间:2023-09-26

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

我包含了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":{"出口":"$"}

需要
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文件中定义了一个填充程序,并且包含了带有require语句的jQuery插件。