2011-09-06 15 views
29

Estoy desarrollando una aplicación node.js, y quiero usar un módulo que estoy creando para el servidor node.js también en el lado del cliente.Módulo común en node.js y el navegador javascript

Un módulo de ejemplo sería: circle.js

var PI = Math.PI; 

exports.area = function (r) { 
    return PI * r * r; 
}; 

exports.circumference = function (r) { 
    return 2 * PI * r; 
}; 

y hacer una simple

var circle = require('./circle') 

para usarlo en el nodo.

¿Cómo podría usar ese mismo archivo en el directorio web para mi lado del cliente javascript?

+2

Usando browserify – Raynos

Respuesta

19

Browserify

Browserify

Se mágicamente le permite hacer eso.

+1

No estoy seguro de cómo se usa realmente para hacer lo que estaba buscando. Parece resolver algún otro problema. – RobKohr

+0

lo siento, enlace incorrecto: https://github.com/substack/node-browserify – generalhenry

+3

es bueno, pero el código generado es omg ... – Charles

45

Esto parece ser cómo hacer que un módulo sea algo que pueda usar en el lado del cliente.

http://caolanmcmahon.com/posts/writing_for_node_and_the_browser

mymodule.js:

(function(exports){ 

    // your code goes here 

    exports.test = function(){ 
     return 'hello world' 
    }; 

})(typeof exports === 'undefined'? this['mymodule']={}: exports); 

Y después de utilizar el módulo en el cliente:

<script src="mymodule.js"></script> 
<script> 
    alert(mymodule.test()); 
</script> 

Este código funcionaría en el nodo:

var mymodule = require('./mymodule'); 
+1

Perfecto. Muy agradable. – ChrisCantrell

+0

El enlace está muerto ... – RedShift

2

Webmake se hizo para portar los módulos CommonJS/NodeJS al navegador. Pruébalo

Cuestiones relacionadas