繁体   English   中英

2014年RequireJS与Backbone,Underscore和jQuery的依赖关系

[英]Dependencies in RequireJS with Backbone, Underscore, and jQuery in 2014

我已经看到了很多关于使用带有中枢,下划线和jQuery的RequireJS的问题。 我的问题略有不同。 我的应用程序可以运行,但是我不知道为什么。

目前,Underscore,jQuery和Backbone都导出AMD模块,因此我不再需要对它们进行匀场化并导出其变量。 因此,我的main.js看起来像下面的代码片段。

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; var x = Backbone.Model.extend({}); var y = new x; 效果很好。 但是,Backbone依赖于Underscore和jQuery。 RequireJS是使用这些库提供的模块自动解决这些依赖关系,还是只是a幸?

require在requirejs配置设置后立即执行

require(['jquery', 'jquery-ui', 'underscore', 'backbone', 'backbone.localStorage'], function() {

});

他们偶然以正确的顺序加载,以控制该序列,您需要在垫片中定义每个模块的依赖性

需要这种工作有很大帮助。

您可以像这样通过usim'shim'命令以简单正确的方式指定依赖项。

//Coffeescript example
paths:
    backbone : 'path/backbone'
    underscore : 'path/underscore'
    jquery: 'path/jquery'


 shim:
    backbone:
        deps:['underscore','jquery']
        exports: 'Backbone'

这样,您可以定义当调用名为“ Backbone”的模块时,require将加载deps:[]中编写的所有依赖项。 现在,它将永远不会在下划线之前加载主干。

我有一个博客和一个关于它的帖子,不幸的是,它仅以葡萄牙语提供,但可能会有所帮助。

http://www.rcarvalhojs.com/backbone/2014/06/03/comecando-require-backbone.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM