Ich möchte unsere JavaScript-Architektur modernisieren - und, was noch wichtiger ist, beginnen Komponententests für unseren JavaScript-Code zu schreiben.javascript: Refactor globale Objekte zu erfordern() Module
Ich habe Informationen aus verschiedenen Fragen/Blogs zusammengefügt und habe einen vorläufigen Plan. Ich bin mir jedoch nicht sicher, ob ich auf dem richtigen Weg bin.
Der Plan:
- Umgestalten Komponenten als exportierte Module statt globaler Objekte.
- Erstellen Sie einen einzelnen Einstiegspunkt (index.js?), Der erfordert() alle Dateien/Komponenten.
- Benutzer Browserify meine browserkompatible statische Datei zu erstellen (zurück zu global).
- Verwenden Sie Knoten, Mocha, & Chai, führen Sie Npm Test Tests ausführen, die die exportierbaren Komponenten verweisen.
Das Umgestalten:
Globale Objekte:
// myProject.js
// --------------------
var MyProject = {};
// component1.js
// --------------------
myProject.component1 = {};
require() Module:
// myProject.js
// --------------------
var component1 = require('./component1');
modules.export = { component1 };
// component1.js
// --------------------
var component1 = {};
modules.exports = component1;
Die Frage:
Wenn ein Projekt zur globalen Objekte verwendet Namespace-Komponenten, wie kann ich diese JavaS umgestalten? cript Dateien um Module zu exportieren, die im Knoten funktionieren? Folgt der obige Plan den modernen Standards für JavaScript-Abhängigkeiten/Module?
Mein Hauptanliegen ist, dass meine Datei index.js (oder Haupteintrag) ein Wartungsalbtraum wird (Hinzufügen jeder neuen Datei als require()).
Ihre 'index.js' sollten nur Core-Einstiegspunkte (wie Top-Level-Komponenten) benötigen. Andere Dateien werden indirekt benötigt. – SLaks
Das macht sehr viel Sinn, danke, dass Sie darauf hingewiesen haben. Da ich neu im Umgang mit require bin() war mir nicht einmal bewusst, dass ich mich darauf verlassen konnte, dass die Komponenten alles aufkochen. Vielen Dank x1000 – veratti