【发布时间】:2014-06-20 04:13:55
【问题描述】:
我看到很多关于使用带有 Backbone、Underscore 和 jQuery 的 RequireJS 的问题。我的问题略有不同;我的应用程序有效,但我不知道为什么。
目前,Underscore、jQuery 和 Backbone 都导出 AMD 模块,所以我不再需要填充它们并导出它们的变量。因此,我的main.js 看起来像下面的代码 sn-p。
main.js
require.config({
paths: {
jquery: 'lib/jquery/jquery-1.10.2',
'jquery-ui': 'lib/jquery/jquery-ui-1.10.4.min',
underscore: 'lib/underscore/underscore.min',
backbone: 'lib/backbone/backbone.min',
'backbone.localStorage': 'lib/backbone/backbone.localStorage'
}
});
require(['jquery', 'jquery-ui', 'underscore', 'backbone', 'backbone.localStorage'], function() {
});
require.html
<!DOCTYPE html>
<html>
<head>
<title>My Sample Project</title>
<!-- data-main attribute tells require.js to load
scripts/main.js after require.js loads. -->
</head>
<body>
<h1>My Sample Project</h1>
<div id="test"> </div>
<script type="text/javascript" data-main="js/main" src="js/lib/require/require.js"></script>
<script type="text/javascript">
</script>
</body>
</html>
当我转到require.html 时,我可以转到控制台,我的所有变量都已正确加载。例如,var x = Backbone.Model.extend({}); var y = new x; 工作得很好。然而,Backbone 依赖于 Underscore 和 jQuery。 RequireJS 是使用这些库提供的模块自动解决这些依赖关系,还是只是侥幸?
【问题讨论】:
-
库
define它们的依赖项本身。查看 Backbone 或 jQuery 的(未压缩)代码并搜索define(,这应该会让您找到正确的行。
标签: javascript jquery backbone.js requirejs underscore.js