困惑于RequireJS依赖

时间:2012-08-24 06:48:15

标签: javascript dependencies requirejs

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

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

    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(){
    
    });
    

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

    那样定义它

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

1 个答案:

答案 0 :(得分:1)

  

1)如果我已经使用垫片声明了文件的依赖关系,我是否需要   在我在该文件中定义模块时重新声明它?

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

  

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

如果你想在仲裁模式中使用骨干作为依赖,你可以写

define(['backbone'], function(Backbone) { .. }