2011-12-26 2 views
6

Я видел много вариантов загрузки модулей, которые еще не поддерживают AMD, и я хотел бы знать, что лучше всего подходит для этого.Каков наилучший способ включить jQuery, Underscore и Backbone в качестве модулей AMD с использованием require.js?

В конце концов, я хотел бы написать модули, как это:

module.js: 

define(["jQuery", "Underscore", "Backbone"], function($, _, Backbone) { 
    ... module code here 
} 

Но есть много проблем с загрузкой этих зависимостей с помощью AMD, так как не все они AMD соответствуют.

+1

Что вы подразумеваете под AMD? Не семейство ЦП, так? – Thilo

+1

Нет. Определение асинхронного модуля. Плохой выбор TLA, я должен признать ... :) –

+1

Несколько лет назад (до того, как я решил переключиться на Intel), группы слухов Mac были ошеломлены ссылками на amd. Тогда это был демон-автоузел. ;-) – Thilo

ответ

4

Я создал табличное веб-приложение todo-list, которое загружает все модули в виде модулей AMD (без загрузчиков).

Проверьте это:

https://github.com/ronreiter/webapp-boilerplate

+2

Ссылка не работает. – amoss

1

Посмотрите на пример this. Он хорошо показывает, как использовать опорную основу вместе с requirejs. Он также показывает, как вы можете упорядочить модель, просмотр и коллекции аккуратно.

+0

Похоже, что пример - это обновленная версия, а не то, что объясняет учебник на веб-сайте. Благодарю. –

2

У Томаса Дэвиса есть лучший пример (imo) для загрузки jquery/underscore/backbone в его не обновленном примере. Начните с погрузчика here

Он использует плагин заказа RequireJS, найденный here, для синхронного загрузки модулей.

1

Последняя версия RequireJS добавляет возможность использовать NON-AMD JS-файлов.

require.config({ 
    'paths': { 
    "underscore": "libs/underscore-min", 
     "backbone": "libs/backbone-min" 
    }, 
    'shim': 
    { 
     backbone: { 
      'deps': ['jquery', 'underscore'], 
      'exports': 'Backbone' 
     } 
    } 
}); 

Дайте это попробовать.

0

Одна вещь, которую я не понимаю о AMD, выглядит так: она загружает нужные js только тогда, когда это необходимо, но с помощью демонстрационного приложения он загружает все js html css-файлы при доступе к приложению для загрузки первой страницы.