Requirejs的顺序不适用于优先级配置和CDN依赖项

时间:2011-05-26 07:42:58

标签: cdn requirejs

以下main.js代码不尊重优先级顺序(有时underscore.js需要backbone.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(); });

order!

在这些CDN依赖项失败且order.js not found错误之前添加{{1}}。

1 个答案:

答案 0 :(得分:6)

我最近更新了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位置有订单插件。