Ho creato un modulo nodo che è essenzialmente solo un JS utile che può essere utilizzato anche lato client. So che require.js è in grado di caricare i componenti common.js, ma non voglio necessariamente stabilire che tutti coloro che utilizzano il lato client del modulo necessitino di require o common.js o qualcosa del genere. Inoltre, non voglio costringerli a rimuovere lo module.exports = ...
nella parte inferiore del file. Come fanno gli altri a risolvere questo problema? Crei piuttosto 2 versioni o 2 versioni "compilate"? Module.exports funziona ovunque?module.exports lato client
18
A
risposta
16
Questo è ciò che fa underscore.js:
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root['_'] = _;
}
4
Questo ha funzionato per me (CoffeeScript). Si supponga 'Namespace' è ciò che si desidera richiedere sulla portata window
per il cliente
(module ? {}).exports = @Namespace =
my: 'cool'
module: '!'
Quindi è possibile utilizzare require('namespace').my === 'cool'
in Node.js o Namespace.my === 'cool'
nel browser. Questo si traduce in JS come
(typeof module !== "undefined" && module !== null ? module : {}).exports = this.Namespace = {
my: 'cool',
module: '!'
};
1
Trovo che questo sia più semplice:
try {
module.exports = exports = MyModule;
} catch (e) {}
Questo file può essere incluso sia nel browser e node.js.
Problemi correlati
- 1. XSLT lato client
- 2. Persistenza lato client (archiviazione)
- 3. lato client bloccaggio
- 4. SVN lato client hook
- 5. Impostazioni lato client Meteor
- 6. Archiviazione query lato client
- 7. Convalida lato client Grails
- 8. Lingue lato client
- 9. Integrazione Validazione lato client
- 10. Ruby: lato client o lato server?
- 11. Quando utilizzare lato client o lato server?
- 12. Lato server MVC + Lato client MVC
- 13. Logica lato client O logica lato server?
- 14. asp.net convalida lato client mvc
- 15. Impaginazione lato client con jqGrid
- 16. Qualsiasi parser haml lato client?
- 17. ReCaptcha v2 eventi lato client
- 18. Esecuzione script hook lato client
- 19. Convalida lato client con WebApi
- 20. Rails PDFKit attendere lato client
- 21. Meteor NPM-module lato client?
- 22. Definizione schema Mongoose lato client
- 23. ASP.NET: aggiunta controlli lato client
- 24. Instradamento lato client. Come funziona?
- 25. MVC3 CompareAttribute, bug lato client
- 26. Lingue lato client fortemente tipizzate?
- 27. Elaborazione delle immagini lato client
- 28. pjax o lato client MVC?
- 29. Instagram API dal lato client
- 30. Libreria lato client Java WebDAV
La migliore esposizione su questo argomento che conosco è http://www.2ality.com/2011/11/module-gap.html. L'autore discute vantaggi/svantaggi e modalità di sviluppo/implementazione. –