【问题标题】:How to use Select2 with Electron (Uncaught TypeError: $(...).select2 is not a function)如何将 Select2 与 Electron 一起使用(未捕获的 TypeError:$(...).select2 不是函数)
【发布时间】:2019-11-14 05:24:48
【问题描述】:

我在这里发现了一个类似的问题:
Uncaught TypeError: $(...).select2 is not a function
但这不适用于 Electron(这里有另一个关于 Electron 的问题没有解决方案:https://github.com/select2/docs/issues/17),解决方案是检查 jQuery 是否加载了两次。

如何检查我是否加载了 jQuery 两次?
实际上,当我们在窗口中使用“nodeIntegration=true”时,我认为这是 Electron 中库的一个普遍问题,因为我们需要添加一些技巧:

这是我的代码:

<script>
    window.$ = window.jQuery = require('jquery'); 
    window.Popper = require('popper.js').default;
    window.Bootstrap = require('bootstrap');
    dt = require( 'datatables.net-bs4' )(window, window.$);
    require( 'datatables.net-fixedheader-bs4' )(window, $);
    //require( 'datatables.net-select-bs4' )(window, $);
</script>

<script src="../../js/select2.min.js"></script>

你能看到所有那些丑陋的黑客吗?无论如何,我觉得我没有加载 jQuery 两次,即使我是 Select2 也是在所有其他库之后添加的。
也许是因为我添加为脚本而不是使用已安装的模块?是不是可以混合起来?

更新:
也许问题出在 select2.js 的这段代码中?

/*! Select2 4.0.7 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(a) {
    "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && module.exports ? module.exports = function(b, c) {
        return void 0 === c && (c = "undefined" != typeof window ? require("jquery") : require("jquery")(b)),
        a(c),
        c
    }
    : a(jQuery)
}(function(a) {

我不完全理解在做什么,但似乎正在检查 module.exports,这在具有 nodeIntegration=true 的 Electron 窗口中是正确的

【问题讨论】:

    标签: electron jquery-select2


    【解决方案1】:

    好的,这就是问题所在,如果我们在 Electron 窗口中使用 nodeIntegration=true,那么我们需要使用 require(不是脚本标签)以这种方式加载 Select2 库:

    require( 'YOUR PATH TO/select2.min.js' )(jQuery);
    

    【讨论】:

      【解决方案2】:

      您的解决方案对我不起作用。 那行得通:

      在渲染器/main.js中

      window.jQuery = window.$ = require('jquery')
      import 'select2' // ...import select2 so webpack can pack it...
      

      很简单)

      附: require('select2')也可以。

      【讨论】:

        猜你喜欢
        • 2021-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-06
        • 2016-01-30
        • 2015-12-13
        • 2018-04-22
        • 2016-11-23
        相关资源
        最近更新 更多