我正在使用Node.js开发一个项目,由于服务器端的代码越来越多,因此我希望将其拆分成多个文件。在客户端方面,这似乎已经做了很长时间,通过为每个文件插入script
标签进行开发,而只有在分发时才使用类似“ Make”之类的东西将所有内容组合在一起。我意识到没有必要将所有服务器端代码连接在一起,因此我不会询问如何执行此操作。我能找到的最接近的方法是require()
,但它的行为与浏览器中的script
不完全相同,因为require的文件不共享通用命名空间。
查看一些旧的Node.js项目,比如Shooter,似乎曾经不是这种情况,否则我可能在我的代码中遗漏了一些简单的东西。在编译时或运行时,我的require'd文件无法访问全局调用命名空间。是否有任何简单的方法解决这个问题,或者我们被迫使我们的require'd JS文件完全独立于调用范围?
SomeClass.prototype.baseProp = SomeOtherClass.prototype.prop * 2;
在这种情况下,我要么被迫通过构造函数在对象实例化时设置它,要么使用您建议的global
对象。我认为后者可能是最合适的。 - Matt MolnarSomeClass
依赖于SomeOtherClass
,你需要在SomeClass.js中使用require("SomeOtherClass")
。在我的代码中我有一个全局变量。global._ = require("underscore")
因为我在每个文件中都要用到它。这是global
的唯一用例。 - Raynos