Сборка Require.js (r.js) с CDN jQuery не ссылается на хороший путь jQuery - PullRequest
8 голосов
/ 23 марта 2012

У меня есть приложение Backbone, использующее Require.js для AMD.Я загружаю jQuery из Google CDN, но после сборки путь к jQuery кажется неправильным.

Сборка происходит без проблем и ошибок.Но как только я использую версию сборки, jQuery добавляется на страницу, используя этот URL:

http://example.com/assets/js/jquery.js

вместо URL CDN.Я чувствую, что это связано с тем, что моя конфигурация пути потеряна и требует зависимости от "jquery" не как ссылка на путь, а как обычный вызов скрипта.

Вот мойОсновной файл:

main.js

require.config({
    baseUrl: '/assets/js/',
    paths: {
            use: 'libs/use-0.2.0.min',
            jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min',
            underscore: 'libs/underscore-1.3.1.min',
            backbone: 'libs/backbone-0.9.2.min'
},
    use: {
            'underscore': {
                    attach: '_'
            },
            'backbone': {
                    deps: ['use!underscore', 'jquery'],
                    attach: function(_, $) {
                            return Backbone;
                    }
            }
    }
});

require(['views/app'], function(AppView){
    var app_view = new AppView();
});

app.build.js

({
appDir: "../../www",
baseUrl: "assets/js",
dir: "../../build",
optimizeCss: "none",
optimize: "uglify",
findNestedDependencies: true,
preserveLicenseComments: false,
paths: {
    use: 'libs/use-0.2.0.min',
    jquery: 'empty:',
    underscore: 'libs/underscore-1.3.1.min',
    backbone: 'libs/backbone-0.9.2.min'
},
modules: [
    {
        name: "main",
        include: ["views/app"],
        exclude: ["jquery"]
    }
],
use: {
    'underscore': {
        attach: '_'
    },
    'backbone': {
        deps: ['use!underscore', 'jquery'],
        attach: function(_, $) {
            return Backbone;
        }
    }
}
})

(и яиспользую use.js для загрузки плагинов не-AMD)

1 Ответ

3 голосов
/ 31 августа 2012

Я бы сначала обновился до последнего RequireJS и проверил бы эту ссылку:

http://requirejs.org/docs/optimization.html#empty

И примечания по CDN в этом разделе:

http://requirejs.org/docs/api.html#config

Пример локального отката для require.config( { paths : {} } ):

Приведенный выше шаблон для обнаружения сбоя загрузки, undef () модуля, изменения путей и перезагрузки является достаточно распространеннымпросим, ​​чтобы для этого также была стенография.Конфигурация путей допускает значения массива:

requirejs.config( {
    // To get timely, correct error triggers in IE, 
    // force a define/shim exports check.
    enforceDefine : true,
    paths : {
        jquery : [
            '//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min',
            //If the CDN location fails, load from this location
            'lib/jquery'
        ]
        // etc.
    }
} );
...