你们中的一些人可能会或可能不会(可能不会)了解我的framework。它的名字是Ally,我非常喜欢使用它。
最近我在Node.js做了一些小事。今天我决定将它用作我的HTTP服务器,这样我就可以做服务器端的JS(以PHP的方式)。
为此,我开始了一个我正在调用Trailer的项目。在处理它时,我发现自己需要Ally的一个功能,即Object:deploy。它的作用几乎就是这样:
var a = { a: 'a' };
a.deploy({ b: 'b' });
a.a; // 'a'
a.b; // 'b'
所以我加载了它..
var Ally = require('./Ally.js');
..但是当我尝试使用它时,它说它未定义。
经过一番挖掘后,我发现Object:deploy是在Ally.js文件中定义的,但它对全局构造函数所做的更改并没有停留。
如何对Ally.js文件中的全局变量进行更改应用于需要它的文件中的全局变量?
注意:如果查看源代码可能会有所帮助,Ally会链接到上面,并且当我获得可用的版本时,Trailer会链接到以防万一有人想要使用它。
答案 0 :(得分:2)
this discussion是否相关?这里的关键点似乎是:
require
将不会扩展全局对象
NODE_MODULE_CONTEXTS = 1
时它也不起作用,但这似乎不是脚本的默认设置。
因此,如果您尝试在交互式shell中运行它,那可能就是问题所在。另请参阅this SO question。