2013-02-19 67 views
1

什么是确定的第三方库(JQuery的/下划线/骨干)的模块,并利用这些作为依赖的好处?Require.js第三方库的依赖

require(["jquery", "underscore"], function($, _) { 
    // Use $ and _ in here 
}); 

下划线例如创建一个全局“_”变量,我可以很容易地在函数内使用上面,假定下划线之前该功能包括在内。

为了通过要求使用,下划线需要的代码进行修改,以返回一个值,或一个垫片限定。为什么打扰,当我可以通过脚本标签包含它?

我得到它提供了一个间接一定的水平,让我去其他依赖映射到这些相同的变量,并将其本地范围的该功能。但是,我不认为这对构成应用程序核心的这些类型的第三方库非常有用。

回答

2

建立一些应用程序与骨干/ requireJs我看不出有什么缺点,在建设骨干网的应用与requireJs,其中主要的依赖关系是通过一个老同学的脚本标记加载简单经过。

你必须摆在首位反正加载这个要求,它使用的大部分的模块,你可能永远不会与另一个框架交换它。所以在每个模块中都没有代价。

0

您不必变化在AMD加载器来使用图书馆。

require.config({paths:{underscore:'//some.cdn/path/to/underscore.js'}}) 

require(["jquery", "underscore"], function($ /*, note that we don't override _ here */) { 
    // Use AMD $ and global _ in here 
}); 
+0

我同意,对于JQuery你不这样做,因为它是AMD兼容的。但是,Underscore不是,并创建了一个全局_变量。我想我不明白你定义的下划线路径配置是如何工作的,除非underscore.js被修改为返回结果。 – Steve 2013-02-20 13:10:40

+0

@Steve我建议使用普通的JavaScript版本的Underscore。 'paths'中的条目简化了一件事情 - 而不是输入整个URL,只需在'require'调用中输入'underscore'即可。但是,您不使用返回值,而只是使用由纯JS下划线设置的全局_ **。换句话说,“使用AMD来计算加载时间,但是一旦加载就使用全局下划线对象” – ddotsenko 2013-02-25 06:54:15