如果我的模块依赖于另一个模块,如何使用 node 在客户端和服务器之间共享模块.js如何使用 node



这是我的节点.js情况:

我正在尝试在我的 Node.js 服务器和游戏浏览器之间共享代码。 基本上,我想分享游戏逻辑。

假设我的游戏有一个表,并且该表可以有玩家。 我希望这些模块中的每一个都是客户端和服务器都可以使用的模块。

我知道我可以做这样的事情:

(function(exports){
   exports.test = function(){
        return 'hello world'
    };
})(typeof exports === 'undefined'? this['Table']={}: exports);

我可以在我的表格上得到这样的东西。但是,如果我需要在此表格模块中使用玩家怎么办? 像这样:

(function(exports){
   exports.test = function(){
        var Player = require('./Player');
        var p1 = new Player();
    };
})(typeof exports === 'undefined'? this['Table']={}: exports);

虽然这在 Node 中有效,但它显然不会在浏览器中使用,因为没有定义 require。 在没有要求的情况下,它可以在浏览器上运行,但不能在 Node 上运行。

TL;DR:我需要将一个模块中的代码"包含"到另一个模块中,该模块可以由浏览器(客户端)和服务器共享。

谢谢

您可以使用require.js在节点和浏览器中加载模块。

请参阅require.js页面上的文档

最新更新