Ich habe ein Knotenmodul erstellt, das im Wesentlichen nur einige nützliche JS ist, die auch clientseitig verwendet werden können. Ich weiß, dass request.js common.js-Komponenten laden kann, aber ich möchte nicht unbedingt ein Mandat machen, dass jeder, der meine Modul-Client-Seite verwendet, auch benötigt oder common.js oder so etwas. Ich möchte sie auch nicht zwingen, die module.exports = ...
am Ende der Datei zu entfernen. Wie lösen andere dieses Problem? Schaffst du einfach 2 Versionen oder 2 "kompilierte" Versionen? Funktioniert module.exports überall?module.exports clientseitige
18
A
Antwort
16
Dies ist, was Underscore.js tut:
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root['_'] = _;
}
4
Das ist für mich (Coffee) gearbeitet hat. Es sei angenommen, ‚Namespace‘ ist, was Sie auf dem window
Umfang für die Kunden
(module ? {}).exports = @Namespace =
my: 'cool'
module: '!'
Dann können Sie require('namespace').my === 'cool'
in Node.js oder Namespace.my === 'cool'
im Browser verwenden, geltend machen wollen. Dies schlägt sich in JS als
(typeof module !== "undefined" && module !== null ? module : {}).exports = this.Namespace = {
my: 'cool',
module: '!'
};
1
ich diese einfacher finden:
try {
module.exports = exports = MyModule;
} catch (e) {}
Diese Datei in eingeschlossen werden können, sowohl den Browser und node.js.
Verwandte Themen
- 1. Clientseitige
- 2. Module.exports und es6 Import
- 3. module.exports und lokale Variablen
- 4. Wert zu module.exports zuweisen
- 5. Clientseitige Objektgeschwindigkeit
- 6. module.exports aus in derselben Datei
- 7. module.exports „Modul ist nicht definiert“
- 8. NodeJS-Cache-Problem mit module.exports
- 9. Module.Exports funktioniert nicht für Express
- 10. Access module.exports von externer Datei
- 11. Verkabelung WCF clientseitige Zwischenspeicherung?
- 12. Remote-Image DataURL, clientseitige
- 13. DataAnnotations treibende clientseitige Validierungsproblem
- 14. Clientseitige Reaktivität mit Meteor?
- 15. Meteor clientseitige Einstellungen
- 16. Clientseitige Fehlerprotokollierung mit Elmah
- 17. Clientseitige Bilder in Flex
- 18. Grails clientseitige Validierung
- 19. Unterstützt SAVON clientseitige Zertifikatsauthentifizierung
- 20. Clientseitige Validierung mit WebApi
- 21. clientseitige Datei-Caching
- 22. Clientseitige Persistenz (Speicher)
- 23. Clientseitige JSX-Übertragung
- 24. ASP.Net Benutzerdefinierte clientseitige Validierung
- 25. Asp.net clientseitige Kryptographie
- 26. React-redux clientseitige Token
- 27. Exportieren von Importen mit module.exports und ES6
- 28. Deklarieren Sie mehrere Module.exports in Node.js
- 29. ESLint Parsing Fehler: Unerwartetes Token in module.exports
- 30. Wie Mongoose Objektfeld Return (In Module.exports Funktion)
Die beste Exposition zu diesem Thema, die ich kenne, ist http://www.2ality.com/2011/11/module-gap.html. Der Autor diskutiert Vorteile/Nachteil und Entwicklungs-/Deployment-Modi. –