RequireJS - CommonJS
Das Modulformat wird von CommonJS definiert. Es wird definiert, ohne dass Browsern andere JavaScript-Umgebungen gleichgestellt werden können. Daher empfiehlt die CommonJS-Spezifikation Transportformate und eine asynchrone Anforderung . Sie können das traditionelle CommonJS-Modulformat problemlos für die Arbeit mit RequireJS konvertieren. Es werden jedoch nicht alle Module in das neue Format konvertiert. Einige der Ausnahmen sind unten aufgeführt -
- Module mit bedingtem Code für einen erforderlichen Aufruf.
- Module mit zirkulären Abhängigkeiten.
Manuelle Konvertierung
CommonJS-Module können mithilfe der folgenden Syntax manuell in das RequireJS-Format konvertiert werden:
define(function(require, exports, module) {
//place CommonJS module content here
});
Konvertierungswerkzeug
Commonjs Module können durch die auf das RequireJS Format konvertiert werden r.js Projekt - Konverter - Tool, das eingebaut ist r.js Datei. Sie sollten den Pfad der zu konvertierenden Datei und den Ausgabeordner wie unten gezeigt angeben -
node r.js -convert path/to/commonjs/modules/ path/to/output
Exportierten Wert einstellen
Einige der Systeme in CommonJS ermöglichen das Festlegen des exportierten Werts durch Zuweisen des exportierten Werts als module.exports But RequireJS unterstützt jedoch die einfachere Möglichkeit, den Wert von der zur Definition übergebenen Funktion zurückzugeben. Dies hat den Vorteil, dass Sie die Argumente für Exporte und Modulfunktionen nicht benötigen, sodass Sie sie wie unten gezeigt aus der Moduldefinition entfernen können.
define(function (require) {
var name = require('name');
//Define the module as exporting a function
return function () {
name.doSomething();
};
});
Alternative Syntax
Die alternative Möglichkeit, Abhängigkeiten anzugeben, besteht in einem Abhängigkeitsarray-Argument define () . Die Reihenfolge der Namen im Abhängigkeitsarray sollte jedoch mit der Reihenfolge der Argumente übereinstimmen, die an die Definitionsfunktion define () übergeben werden (siehe unten).
define(['name'], function (name) {
return function () {
name.doSomething();
};
});
Laden von Modulen aus CommonJS-Paketen
Um Informationen zu Speicherort und Paketattributen zu erhalten, werden Module mithilfe von RequireJS in CommonJS-Pakete geladen, indem Sie die RequireJS-Konfiguration einrichten.
Optimierungswerkzeug
In RequireJS ist ein Optimierungstool vorhanden, mit dem die Moduldefinitionen zu optimierten Bundles für die Browserbereitstellung kombiniert werden können. Es fungiert als Befehlszeilentool, sodass Sie es als Teil der Codebereitstellung verwenden können.