【问题标题】:Requirejs' order does not work with priority config and CDN dependenciesRequirejs 的顺序不适用于优先级配置和 CDN 依赖项
【发布时间】:2011-09-02 09:03:49
【问题描述】:

以下main.js 代码不遵守优先级顺序(有时underscore.jsbackbone.js 需要时未加载):

require({
    baseUrl:'/scripts',
    priority:[
        "http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js",
        "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js",
        "http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js",
        "http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"
    ]
    },["src/app"], 
    function (app) {
        app.start();
});

在这些 CDN 依赖项失败并出现 order.js not found 错误之前添加 order!

【问题讨论】:

    标签: cdn requirejs


    【解决方案1】:

    我最近更新了 RequireJS 文档,但我还没有将更改推送到网站:

    “优先级”配置无法加载插件加载的资源。所以要完成你想做的事情,你可以嵌套 require() 调用,这会给你想要的行为:

    require(
        {
            baseUrl:'/scripts'
        },
        [
            "require",
            "order!http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js",
            "order!http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js",
            "order!http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js",
            "order!http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"
    
        ], 
        function (require) {
            require(["src/app"], function (app) {
                app.start();
            });
        }
    );
    

    这假设您在 /scripts/order.js 位置有订单插件。

    【讨论】:

    • 这非常有效。 order插件和RequireJS也可以用CDN地址导入吗?
    • 很高兴听到。目前我不知道 order.js 和 require.js 都在 CDN 上,但我确实想在 1.0 版本完成后至少游说 require.js。 require.js 在cdnjs.com 上运行,但我没有任何关于它的可靠性或支持该 CDN 的人的数据。不过,我喜欢他们正在尝试做的事情。
    • 为什么需要嵌套的 require 调用?我们不能只在依赖数组中包含 order!src/app 吗?谢谢
    • 来自 cdnjs.com 的 Thomas 在这里插话。我们与一家名为 cloudflare.com 的公司合作,这使我们的可靠性提高了一倍。但我确实相信,如果事情可能出错,他们会因此在谷歌群组上打开一个线程(groups.google.com/group/requirejs/browse_thread/thread/…)。希望有人可以为使用 CDN 编写详细的解决方案并使用 require.js 回退本地脚本
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2016-09-20
    • 1970-01-01
    • 2018-06-12
    • 2013-08-18
    相关资源
    最近更新 更多