我已将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不兼容而发生?
答案 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')();