require()不会始终返回附加到exports对象的方法

时间:2015-01-08 15:08:34

标签: javascript parse-platform

我一直在使用require()将我的代码分解为模块,但这样做的结果似乎是零星的和不一致的。

例如,在main.js中,我有两个requires()s:

var moduleOne = require('cloud/moduleOne.js');
var moduleTwo = require('cloud/moduleTwo.js');

通过导出调用附加到moduleOne的方法会产生正确的结果:

moduleOne.methodOne(argumentOne); // is defined

对第二个模块做同样的事情并不是这样。它告诉我方法是未定义的。

moduleTwo.methodTwo(argumentTwo); // is undefined

我真的很困惑为什么这么不一致。在每个源文件中,我都声明了这样的函数(没有函数包装器来创建本地命名空间):

// moduleOne.js
exports.methodOne = function(argumentOne) {
    // Code
}

// moduleTwo.js
exports.methodTwo = function(argumentTwo) {
    // Code
}

我的linter告诉我所有代码都是有效的,moduleOne中的代码按预期执行并传递我的测试。有没有其他人经历过这个,如果有的话,解决方案是什么?这两个文件确实在cloud目录中,并且它们都在Parse上。

1 个答案:

答案 0 :(得分:0)

如果两个文件的方法类似,那么它可能是一个缓存问题 尝试在您的require配置中添加缓存破坏程序:

urlArgs: "bust=" +  (new Date()).getTime()

请参阅the docs以获取参考。