2

以下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错误。

4

1 回答 1

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 位置有订单插件。

于 2011-05-26T18:20:51.150 回答