He creado un módulo de nodo que es básicamente solo un JS útil que también se puede usar desde el lado del cliente. Sé que require.js puede cargar componentes de common.js, pero no necesariamente quiero hacer un mandato que todos los que usan mi módulo de cliente necesiten también, common.js o algo así. Tampoco quiero obligarlos a eliminar el module.exports = ...
en la parte inferior del archivo. ¿Cómo otros resuelven este problema? ¿Simplemente creas 2 versiones, o 2 versiones "compiladas"? ¿Module.exports funciona en todos lados?module.exports client side
18
A
Respuesta
16
Esto es lo que hace underscore.js:
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = _;
}
exports._ = _;
} else {
root['_'] = _;
}
4
Esto ha funcionado para mí (CoffeeScript). Suponga 'Espacio de nombres' es lo que quiere reclamar en el ámbito window
para el cliente
(module ? {}).exports = @Namespace =
my: 'cool'
module: '!'
continuación, puede utilizar require('namespace').my === 'cool'
en Node.js o Namespace.my === 'cool'
en el navegador. Esto se traduce en JS como
(typeof module !== "undefined" && module !== null ? module : {}).exports = this.Namespace = {
my: 'cool',
module: '!'
};
1
Me parece más simple:
try {
module.exports = exports = MyModule;
} catch (e) {}
Este archivo se puede incluir tanto en el navegador y node.js.
Cuestiones relacionadas
- 1. Mongodb client side javascript api
- 2. Hybrid server-side-java y client-side-javascript charting library?
- 3. Cualquier sitio grande que use Client Side XSLT?
- 4. Side-Side ClickOnce Instalaciones
- 5. Node.js module.exports en CoffeeScript
- 6. Colocando 3 div's Side by Side
- 7. Obtener module.exports desde dentro del mismo archivo
- 8. Objective-c Server Side
- 9. C++ Server-Side-Scripting
- 10. HowTo Unit Client Client Code
- 11. Invalidando ASP.NET FormsAuthentication server side
- 12. Server Side Javascript: ¿Por qué?
- 13. C# optimizations and side effects
- 14. Python server side AJAX library?
- 15. Side effect - ¿Qué es esto?
- 16. Server Client envía/recibe texto simple
- 17. El objeto Node.js no es una función - module.exports
- 18. Error de configuración Side-by-Side para compilación de depuración de 64 bits en VS2008
- 19. Error: La información de configuración Side-by-Side en "BLAH.EXE" contiene errores
- 20. Dependency Walker Error: la información de configuración Side-by-Side para "ABC.DLL" contiene errores
- 21. twist perspective broker server side delay
- 22. Server-side ASP.Net Ajax manejo de excepciones
- 23. Server Side API para aplicaciones móviles
- 24. .NET Rest Client Frameworks
- 25. Java websocket client needed
- 26. PHP/FTP Client
- 27. C# REST API Client
- 28. Good Client Socket Pool
- 29. WCF Service Client Lifetime
- 30. CXF Client Security
La mejor exposición sobre este tema que conozco es http://www.2ality.com/2011/11/module-gap.html. El autor analiza las ventajas/desventajas y los modos de desarrollo/despliegue. –