habe ich select2
als Knotenmodul heruntergeladenWie benutze select2 mit webpack?
npm install select2
und schloss es in meinem app.js
:
require('select2')($);
Wenn ich laufen
webpack
es keine Fehler gibt, aber wenn öffne ich die app Ich bekomme:
Uncaught TypeError: Object.defineProperty called on non-object(…)
kommen von select2.js
:
S2.define('select2/core',[
'jquery',
'./options',
'./utils',
'./keys'
], function ($, Options, Utils, KEYS) {
(...)
}
es geschieht, weil Modul Wrapper für select2
nur mit AMD arbeitet und ist unvereinbar mit Commonjs?
Natürlich hatte ich Jquery, ich dachte, es wäre zu offensichtlich, um das zu erwähnen. Das Problem war, dass einige jquery-Plugins in UMD verpackt sind, was einige seltsame Überprüfungen durchführt, wenn ich AMD, CommonJS oder keine verwende, und diese Überprüfung bricht in Webpack ab, weil Webpack beides unterstützt, so dass UMD-Wrapper annimmt, dass ich AMD benutze, obwohl ich commonJS verwende. Es gibt einen Hacky [Workaround] (http://stackoverflow.com/questions/28969861/managing-jquery-plugin-dependency-in-webpack) für dies in akzeptierter Antwort auf # 4. –