【问题标题】:Browserify jQuery is not defined?Browserify jQuery 没有定义?
【发布时间】:2014-04-09 15:03:37
【问题描述】:

所以我知道如何手动解决这个问题,但这很烦人!

我包含了 bootstrap dropdown.js,函数末尾是

}(jQuery);

在我的 shim 中,我将 jquery 设置为依赖项

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

这似乎是使用$ 的唯一方法,但由于下拉列表末尾有 jQuery,控制台显示

ReferenceError: jQuery is not defined

}(jQuery);

将其更改为 }($); 有效。

所以我的问题是,有没有人知道如何在不手动操作的情况下更好地做到这一点,或者手动编辑脚本最好?

【问题讨论】:

  • 如果我不得不猜测,将 'jquery': '$' 更改为 'jquery': 'jQuery' 可能会有所帮助。不过,我很想知道答案。
  • 请您在此处添加一些详细代码。当我们包含的 jquery 文件不正确时会发生这种情况。
  • @Mahipat 真的很痛苦,我知道你的感受。我所做的是编辑实际的插件脚本。我不喜欢这种方法,但它有效。大多数插件都是用自调用函数(function($){ $.fn.function_name = function(x){}; })(jQuery); 编写的,该代码允许jQuery 关键字与$ 一起使用,但由于某种原因,我必须手动将(jQuery) 更改为($)。成功后我没有多想,但也许我应该重新考虑一下。
  • 就用这个window.jQuery = require('jquery.js');

标签: javascript jquery twitter-bootstrap browserify


【解决方案1】:

您可以使用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();

它解决了我的问题。希望能帮助到你。 :)

【讨论】:

  • 感谢分享,我发现如果使用 $ 不起作用,那么在 shim 中使用 jQuery 通常可以修复它。如果失败了,肯定会参考这个。
  • 2018,这仍然有效。我怎样才能设置像你这样的垫片文件?有什么优势?
【解决方案2】:

垫片
“./node_modules/jquery/dist/jquery.js”:{ “出口”:“$” }

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

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

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

还有

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

【讨论】:

    【解决方案3】:

    我不认为我的解决方案接近最佳或理想,它没有回答我的问题,但如果有人遇到这个问题,只需这样做,你可以让它作为临时解决方案发挥作用,让事情顺利进行不会在您的项目上停滞不前。

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

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

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

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

    如果您仍然遇到问题,请确保在您的 package.json 文件中定义了一个 shim,并且您包含带有 require 语句的 jQuery 插件。

    【讨论】:

      猜你喜欢
      • 2014-10-09
      • 2014-12-26
      • 2015-10-02
      • 1970-01-01
      • 2015-09-13
      • 2017-06-20
      • 1970-01-01
      • 2021-08-08
      • 2017-06-07
      相关资源
      最近更新 更多