Sind requirejs
und require
das gleiche?
Ab RequireJS 2.1.15 require
und requirejs
im globalen Raum sind in der Tat "genau die gleichen", wie aus diesem Test hervorgeht, den Sie in der Konsole durchführen können:
> require === requirejs
true
Dass der Test zurückgibt, true
sagt Ihnen, dass es sich um genau dasselbe Funktionsobjekt handelt . Es sind keine zwei Funktionen, die einen ähnlichen oder identischen Code haben. Sie sind das gleiche Objekt, Punkt.
Beachten Sie jedoch , wenn Sie ausführen , define(['require'], function (require) {
die require
an die Funktion übergeben wird , ist normalerweise verschieden von der globalen require
.
Sollten Sie verwenden require
oder requirejs
?
Es hängt davon ab, ob. RequireJS ist ein AMD-Lader, aber nicht der einzige Lader in der Stadt. Wenn Sie Code schreiben möchten, der zu 100% der AMD-Spezifikation entspricht , damit jemand, der Ihren Code verwendet, jeden gewünschten Loader verwenden kann, ohne Ihren Code ändern zu müssen, sollten Sie ihn require
auf globaler Ebene verwenden, da er requirejs
spezifisch für RequireJS ist. Ein anderer AMD-Lader definiert es nicht. Die AMD-Spezifikation definiert require
aber nicht requirejs
.
Wenn Sie etwas anderes laden, das eine globale Ebene definiert require
, müssen Sie diese auf requirejs
globaler Ebene verwenden, um Konflikte zu vermeiden.
Verwenden Sie define
in einem Modul immer , um einen Verweis auf zu erhalten require
. Sie sollten dies ganz unabhängig davon tun, ob es einen Konflikt im globalen Raum gibt.