Клуб API Карт

RequireJS optimizer не включает Яндекс.Карты в сборку

mvblog
9 декабря 2016, 12:38

Здравствуйте! Я подключаю Яндекс.Карты с помощью RequireJS, конфиг которого выглядит следующим образом:

require.config({
  paths: {
    ymaps: 'https://api-maps.yandex.ru/2.1/?lang=ru_RU'
  }
  shim: {
    ymaps: {
      exports: 'ymaps'
    }
  }
})

И все вроде бы ничего, все работает, пока не возникает необходимость использовать optimizer. Он вообще ломается и не хочет ничего собирать. На сайте RequireJS нашел статью EMPTY: PATHS FOR NETWORK/CDN RESOURCES, в которой говорится, что для optimizer нужно указать в конфиге empty. Я так и указал:

paths: {
  ymaps: "empty:"
}

Сборка начала выполняться, но, при входе на страницу с картой, все ломается. В консоль выпадает ошибка: Uncaught Error: missing ymaps.

Можете подсказать, как решать такую проблему? Спасибо!

3 комментария
Подписаться на комментарии к посту
С RequireJS вашего конфига недостаточно. Надо учитывать что АПИ загружается в 2 запроса и нужно писать плагин на ready


https://github.com/dimik/ymaps/blob/gh-pages/examples/geoobject-editor/plugins/ymaps/ready.js


Обновлено 12 декабря 2016, 22:28
dimik,
Спасибо за ответ. Я еще спрошу. Когда указывается 

paths: {
  ymaps: "empty:"
}


Это же подразумевается, что RequireJS не будет объявлять модуль с именем ymaps. То есть он будет считать, что ymaps будет загружено где-то извне. Вопрос! Откуда именно и как нужно будет загрузить ymaps?
Обновлено 12 декабря 2016, 22:54
mvblog,
Я честно говоря не большой знаток RequireJS. Я использовал его  пока не открыли модульную систему АПИ. RequireJS слишком неочевидный и содержит много чего лишнего для модульной системы