Sind requirejsund requiredas gleiche?
Ab RequireJS 2.1.15 requireund requirejsim 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, truesagt 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 requirean die Funktion übergeben wird , ist normalerweise verschieden von der globalen require.
Sollten Sie verwenden requireoder 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 requireauf globaler Ebene verwenden, da er requirejsspezifisch für RequireJS ist. Ein anderer AMD-Lader definiert es nicht. Die AMD-Spezifikation definiert requireaber nicht requirejs.
Wenn Sie etwas anderes laden, das eine globale Ebene definiert require, müssen Sie diese auf requirejsglobaler Ebene verwenden, um Konflikte zu vermeiden.
Verwenden Sie definein 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.