困惑于RequireJS依赖

5 javascript dependencies requirejs

我试图围绕requirejs中的依赖关系.

  1. 如果我已经为使用的文件声明了依赖项,shim那么在我在该文件中定义模块时是否需要重新声明它?
  2. 如果我require用来加载骨干等依赖项,我在定义作为一部分加载的模块时是否需要重新声明它require

到目前为止,这是我的代码:

require.config({
    //alias
    paths: {
        Backbone: 'libs/backbone-min',
        Config: 'config',
        Dom: 'dom',
        App: 'app'
    },

    //dependencies
    shim: {
        'Backbone': ['libs/underscore-min'],
        'Dom': ['libs/sizzle']
    }
});

//used to load and use stuff
require(['Config','Dom','App','Backbone'], function(){

});
Run Code Online (Sandbox Code Playgroud)

那么dom.js我可以define(function(){...});使用Sizzle 定义一个模块并开始使用吗?或者我仍然需要像这样定义它define(['libs/sizzle'], function(){...});

另外,如果我在app.js中定义一个模块,我是否还需要加载骨干define,因为我已将其作为一部分包含在内require().

svl*_*ada 1

1)如果我已经使用 shim 声明了文件的依赖项,那么当我在该文件中定义模块时是否需要重新声明它?

对于每个模块,您需要定义它的依赖关系集。

2)如果我使用require来加载backbone等依赖项,那么当我定义一个作为require的一部分加载的模块时,是否需要重新声明它?

如果你想使用主干作为任意模式的依赖,你可以写

define(['backbone'], function(Backbone) { .. }
Run Code Online (Sandbox Code Playgroud)

  • 关于 Shim 实际上做了什么的问题的最佳答案是由 RequireJS 创建者 James Burke 给出的。您可以在以下网址阅读该消息:https://groups.google.com/d/msg/requirejs/-han0L_Sv_E/iFttMxDkT1UJ (5认同)