如何在webpack中使用select2?

时间:2016-12-23 09:54:24

标签: javascript npm webpack jquery-select2 select2

我已将select2作为节点模块下载:

npm install select2

并将其包含在我的app.js

require('select2')($);

<小时/> 当我运行webpack时没有错误,但是当我打开应用程序时,我得到:

Uncaught TypeError: Object.defineProperty called on non-object(…)

来自select2.js

S2.define('select2/core',[
  'jquery',
  './options',
  './utils',
  './keys'
], function ($, Options, Utils, KEYS) {
(...)
}

是否会因为select2的模块包装器仅适用于AMD并且与CommonJS不兼容而发生?

2 个答案:

答案 0 :(得分:1)

你在哪里看到这是如何使用select2?从我看过该项目可以看出,您需要安装jquery作为dep,但它将是automatically required

查看导出函数的签名,看起来可能需要jQuery元素和选项:https://github.com/select2/select2/blob/master/dist/js/select2.js#L5052

然而,在导入之后,它应该作为插件附加到jQuery,所以我认为$('.some-element').select2([options]);也可以。

您是否只是尝试require('select2')(如果您还没有npm i jquery --save那么?)

答案 1 :(得分:0)

如果现在正在寻找某人的人只是在做require('select')而不要将它附加到jquery,则必须require('select2')();,然后您可以致电

$(document).ready(()=>{
  $('.select2').select2()
})

然后它将起作用。现在我已经用electronic js测试了。它正在工作!

在我的文档中,这是我首先导入所有jQuery然后选择2的方法

  window.$ = window.jQuery = require("jquery");
  require('select2')();