2011-09-06 26 views
29

我正在开发一个node.js应用程序,并且我想在客户端使用我为node.js服务器创建的模块。node.js和浏览器中的常见模块javascript

一个例子,模块将circle.js:

var PI = Math.PI; 

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

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

和你做一个简单的

var circle = require('./circle') 

在节点中使用它。

我怎么能在我的客户端JavaScript的Web目录中使用相同的文件?

+2

使用browserify – Raynos

回答

19

Browserify

Browserify

它神奇地让你做到这一点。

+1

不知道如何实际上是用来做我想找的东西。它似乎解决了一些其他问题。 – RobKohr

+0

对不起,错误的链接:https://github.com/substack/node-browserify – generalhenry

+3

这很好,但生成的代码是omg ... – Charles

45

这似乎是如何使一个模块,你可以在客户端使用。

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); 

然后使用该模块的客户端上:

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

此代码将在工作节点:

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

完美。非常好。 – ChrisCantrell

+0

链接已死... – RedShift

2

制作了以将CommonJS/NodeJS模块移植到浏览器。试一试

相关问题