2013-03-27 76 views
8

RequireJS允许人们从CDN加载库。在情况下,CDN是向下,还可以有一个备份选项,其中的文件可以位于一些其他地方(在这种情况下,我们假设它位于本地)。这全部在路径对象中完成。例如,为了从CDN加载的JQuery,然后在本地如果CDN下跌,这样做:使用CDN与RequireJS优化器

paths : { 
    jquery : [ 
     'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min', 
     'lib/jquery', 
    ]} 

以上例子将首先尝试找到从CDN查询,然后从LIB/jQuery的。

问题 我的印象是,当使用requirejs优化器时,事情会被缩小和混淆成一个大文件。备份选项如何在优化器中工作?它会被包含在缩小的文件中吗?如果是这样,那么使用CDN绝对没有优势。但是,如果在优化版本中不包含备份选项,那么将如何优化代码应付如果CDN降?

在此先感谢您的答案。

回答

3

你可以有不同的配置设置为常规网站与你用什么喂优化,所以在这种情况下,你会在你的优化版本中使用的“空”的配置,使其不会在包括jQuery的合并/精缩版:

paths: { 
    jquery: "empty:" 
} 

查看文档的详细信息: http://requirejs.org/docs/optimization.html#empty

+2

是啊,我知道这一点,但随后又有什么用的是“备份选项”的。我的意思是,这个代码将用于生产远远超过测试。在我看来,备份选项完全没用,因为谁使用未优化的JavaScript。 – 2013-03-27 18:21:41

+0

如果没有优化您的意思是不是与其它模块相结合,那么是你有一个好点。但没有什么说你的备份文件不能被缩小。另外,你会期望当使用CDN时,它将在很大一部分时间内成功加载。 – explunit 2013-03-27 18:28:58

+2

谢谢,您在最后的评论中回答了我的问题。由于未经优化,我的意思是不合并。我不知道为什么这个选项甚至存在。这将是非常酷的,如果这个备份选项将被异步加载如果CDN失败,但可能难以实现与AMD。詹姆斯伯克,如果你正在阅读这个(有什么机会!),请你考虑一下。 – 2013-03-27 20:24:17