我有一个使用RequireJS的相当大的Backbone.js项目。随着项目大小的增长(这里的“大小”指的是独立模块文件的数量),间歇性错误开始出现。大多数情况下,这是一个对象错误:
Uncaught TypeError: object is not a function
偶尔,它会抱怨模块没有被加载。
一旦通过r.js优化器运行项目,这些错误就会消失。只有在RequireJS加载各个模块时,才会发生这种情况。
这就引出了我的问题--当模块数量达到一定数量时,RequireJS会不会开始出现模块加载的问题?
发布于 2012-09-28 03:08:44
此问题似乎将在即将发布的require.js 2.1版本中得到解决。请看这里:
发布于 2012-08-17 15:16:20
在过去的几天里,我一直在为同样的问题而斗争,这是我发现的:
显然,通过text.js插件需要模板的嵌套依赖结构可能会导致竞争条件,使顶层模块无法准备好,而requirejs认为它已经准备好了。只有当我有几个这种类型的嵌套模块依赖结构时,我才会遇到这个问题:
Router
-> View1
-> text!.../view1.html
-> View2
-> text!.../view2.html
-> View3
-> text!.../view3.html
-> View4
-> text!.../view4.html
-> View5
-> text!.../view5.html
-> View6
-> text!.../view6.html
-> View7
-> text!.../view7.html
-> View8
-> text!.../view8.html
有了这个结构,当路由器尝试实例化视图时,我得到了类似于“View1不是一个构造器”的TypeErrors。
另外,在顶级视图中需要嵌套视图的模板也为我解决了这个问题:
Router
-> View1
-> text!.../view1.html
-> text!.../view2.html
-> View2
-> text!.../view2.html
-> View3
-> text!.../view3.html
-> text!.../view4.html
-> View4
-> text!.../view4.html
-> View5
-> text!.../view5.html
-> text!.../view6.html
-> View6
-> text!.../view6.html
-> View7
-> text!.../view7.html
-> text!.../view8.html
-> View8
-> text!.../view8.html
我真的不知道require.js是如何工作的,但在我看来,它就像那些嵌套的文本!当为父模块设置了一些“就绪”标志时,调用不会被考虑。
https://stackoverflow.com/questions/10959095
复制相似问题