我在使用RequireJS文本插件时遇到了一些问题。这可能是一个与路径相关的问题(或者类似的明显问题),但我无法解决它,因为无论是chrome控制台(xhr打开)还是firebug都没有给我任何信息,除了
Uncaught Error: Load timeout for modules: text
http://requirejs.org/docs/errors.html#timeout
我很肯定路径是好的,但我找不到任何其他解释。有人知道如何调试这个吗?
我在服务器端使用node.js和express,在客户端使用backbone和jQuery,所有这些都可以用RequireJS正确加载。
5条答案
按热度按时间g6baxovj1#
我猜这是路径问题。我有相同的设置(node/express和backbone),它似乎对我有效。下面是我的main.js文件:
下面是我如何从模块中调用插件:
kpbpu0082#
因为它在你的windows手机上,尝试将“waitSeconds”设置为一个更大的数字。
移动的速度很慢,但默认情况下require.js会在7秒后超时,这对于移动体验/或互联网访问速度慢的用户来说通常太低了。
文档:http://requirejs.org/docs/api.html#config-waitSeconds
ldioqlga3#
我最初的答案
I answered a similar question here指向正式的require.js疑难解答页面。
在我的情况下,这个错误只发生在开发者控制台打开时在一个单一的macbook上的几个chrome版本的chrome。其他设备没有显示这个问题。因此,我是确定的,改变配置的单一计算机。
等待秒数
waitSeconds选项可以配置为无限大(0)或任何所需的值(以秒为单位)。默认值为7秒。示例配置:
**由于infinite(0)禁用了超时,因此我不建议在生产代码中使用此选项!**如果您在任何地方运行代码时遇到此问题,或者禁用超时没有帮助,请继续阅读。
此问题的3个常见原因
paths
和baseUrl
选项)bsxbgnwa4#
当我错误地使用sugar语法时,我得到了这个错误。你不能同时定义依赖关系和使用
require
工厂函数。从文档中:
这会失败,因为requirejs需要确保在调用上面的工厂函数之前加载并执行所有依赖项。如果给define()一个依赖项数组,那么requirejs假设所有依赖项都列在该数组中,并且它不会扫描工厂函数中的其他依赖项。因此,要么不要传入依赖项数组,要么如果使用依赖项数组,则列出其中的所有依赖项。
因此,如果你指定了一个依赖数组,你就不能依赖sugar语法来工作了。在我看来这并不理想,但这就是创建requirejs的方式。
46scxncf5#
Require.js请求我的
text.js
文件,但是响应是302
-我的用户没有通过身份验证。因此,text
插件无法加载。因此,我的所有文本资源都无法加载:text!any/name.html
.我的控制台给了我一个相关的消息,另一个提示,我的
text
插件无法加载:无法读取未定义的属性'normalize'