使用带有RequireJS优化器的CDN

Bar*_*eyn 9 requirejs

RequireJS允许从CDN加载库.在CDN关闭的情况下,还可以有一个备份选项,其中文件可以位于其他地方(在这种情况下,我们假设它位于本地).这都是在路径对象中完成的.例如,为了从CDN加载JQuery,然后在CDN关闭时本地加载,请执行以下操作:

    paths : {
    jquery : [ 
        'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
        'lib/jquery',
    ]}
Run Code Online (Sandbox Code Playgroud)

上面的例子首先尝试从CDN查找查询,然后从lib/jquery查找.

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

提前谢谢你的答案.

exp*_*nit 4

您可以为常规站点和用于提供优化器的内容设置不同的配置设置,因此在这种情况下,您可以在优化器版本中使用“空”配置,这样它就不会在组合/缩小版本中包含 jQuery :

paths: {
    jquery: "empty:"
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅文档: http://requirejs.org/docs/optimization.html#empty

  • 是的,我知道这一点,但是那个“备份选项”有什么用呢?我的意思是,这段代码在生产中的使用将远远多于在测试中的使用。在我看来,备份选项完全没用,因为谁使用了未优化的 JavaScript。 (2认同)
  • 谢谢,您在最后的评论中回答了我的问题。我所说的未优化是指未合并。我不知道为什么这个选项存在。如果 CDN 失败时可以异步加载此备份选项,那就太酷了,但这对于 AMD 来说可能很难实现。詹姆斯·伯克(James Burke),如果您正在阅读本文(机会有多大!),请您考虑一下这一点。 (2认同)