Ich entwickle eine vernetzte Anwendung zwischen dem Browser und einem Server mit node.js. Ich teile im Moment eine Menge Code, aber wenn ich dies tatsächlich bereitstellen möchte ich den Client nur Client-spezifischen Code zu erhalten. Meine Optionen sind im Moment:
1.) Implementieren Sie alle Browser/Node.js Unterschiede mit Vererbung. Ich habe dies an einigen Stellen ausprobiert, und am Ende habe ich eine Menge Klassen, die sehr, sehr einfache Anpassungen ihrer Eltern sind, die oft nur teilweise eine einzige Funktion spezialisieren. Das ist kein Stil, den ich sehr mag, weil es eine Menge Umwege bedeutet, wenn man versucht, herauszufinden, was eigentlich los ist.
2.) Definieren Sie eine Konstante wie IS_BROWSER auf globaler Ebene und dann überprüfen Sie es, wann immer ich Code-Pfade auf dem Browser gegen node.js ändern müssen. Dann schließen Sie kompilieren alle js mit erweiterten Optimierungen zu entfernen toten Code auf dem Browser (Einstellung IS_BROWSER = true). Gibt es irgendwelche Probleme mit diesem Ansatz vorausgesetzt, ich tun, was ich tun müssen, um erweiterte Optimierungen in Schließung Compiler gehen?
3.) ?? Ich bin offen für Vorschläge.