【问题标题】:Using a CDN with RequireJS optimiser使用带有 RequireJS 优化器的 CDN
【发布时间】:2013-03-27 15:25:02
【问题描述】:

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

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

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

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

提前感谢您的回答。

【问题讨论】:

    标签: requirejs


    【解决方案1】:

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

    paths: {
        jquery: "empty:"
    }
    

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

    【讨论】:

    • 是的,我知道这一点,但是那个“备份选项”有什么用。我的意思是,这段代码在生产中的使用将远远超过在测试中使用。在我看来,备份选项完全没用,因为谁使用未优化的 JavaScript。
    • 如果未优化的意思是不与其他模块组合,那么是的,你有一个好点。但是没有任何内容表明您的备份文件无法缩小。此外,您会期望在使用 CDN 时,它会在很大一部分时间内成功加载。
    • 谢谢,您在最后一条评论中回答了我的问题。通过未优化,我的意思是不合并。我不知道为什么这个选项甚至存在。如果在 CDN 失败的情况下异步加载此备份选项,那将非常酷,但 AMD 可能很难实现。詹姆斯·伯克,如果你正在阅读这篇文章(机会有多大!),请你考虑一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    相关资源
    最近更新 更多