Skip to content

Сборка API Карт

Pasha edited this page Dec 13, 2013 · 33 revisions

Возможности

Утилита для сборки располагается в папке build и позволяет получить готовое приложение с необходимым набором плагинов. Помимо сборки с помощью CLI/grunt осуществляется минификация и проверка кода на соответствие соглашениям.

Конфигурация

  • build/config.js – описание путей/настроек для утилиты
  • build/deps.js – список зависимостей модулей
  • .jshintrc – настройки JSHint

Проверка исходного кода с помощью JSHint

grunt hint

В случае ошибки отображается путь к файлу, номер строки, колонки и сообщение, например:

Linting src/DGCustomization/src/DGPopup.js ...ERROR
[L13:C1] W015: Expected '=' to have an indentation at 5 instead at 1.
[L13:C1] E030: Expected an identifier and instead saw '='.
[L13:C2] W033: Missing semicolon.

Сборка

Базовая команда, результатом которой будет полная сборка API:

grunt build

Результат (файлы игнорируются git):

  • public/js/dg-map-src.js (исходный js код)
  • public/js/dg-map.js (минимизированный js код)
  • public/css/dg-map-src.css (исходный css код без хаков для IE8)
  • public/css/dg-map-src-full.css (исходный css код c хаками для IE8)
  • public/css/dg-map-src-ie.css (исходный css код хаков для IE8)
  • public/css/dg-map.css (минимизированный css код без хаков для IE8)
  • public/css/dg-map-full.css (минимизированный css код c хаками для IE8)
  • public/css/dg-map-ie.css (минимизированный css код хаков для IE8)

Cборка API с указанием необходимых модулей:

grunt build --mod=Module1,Module2,Module3

где Module1,Module2,Module3 - названия модулей API.

Например:

grunt build --mod=DGGeoclicker,DGLocation

Cборка API по заранее описанным пакетами:

grunt build --pkg=package_name

где package_name - имя пакета. Список и описание доступных пакетов находится в файле build/packs.js.

Пример:

grunt build --pkg=online

Cборка API с кастомной темой:

grunt build --skin=skin_name

при разработке плагина можно создать любую новую тему для него, если запрашиваемая тема не будет найдена, для плагина применится дефолтная 'light'. В базовой поставке доступны 2 темы 'light' и 'dark'. Чтобы сделать сборку исходников с темной темой, нужно передать параметр skin:

grunt build --skin=dark
Описание вывода в консоль

При выполнении сборки весь процесс сопровождается выводом сообщений к консоль.

Пример:

Build modules:
  * Core
  * EPSG3395
  * TileLayer
  * TileLayerWMS
  * TileLayerCanvas
  * ImageOverlay
  * Marker
  * DivIcon
  * Popup
  * LayerGroup
  * FeatureGroup
  * Path
  * PathVML
  + Polyline (deps of PathCanvas)
  + Polygon (deps of PathCanvas)
  + Circle (deps of PathCanvas)
  * PathCanvas
  * MultiPoly
  * Rectangle
  * CircleMarker
  * VectorsCanvas
  * GeoJSON
  * MapDrag
  * MouseZoom
  + AnimationPan (deps of AnimationZoom)
  + AnimationZoom (deps of TouchZoom)
  * TouchZoom
  * BoxZoom
  * Keyboard
  * MarkerDrag
  * ControlAttrib
  * ControlZoom
  * ControlScale
  * ControlLayers
  * AnimationTimer
  * Geolocation
  * DGCore
  * DGWhen
  * DGAjax
  * DGLabel
  * DGWkt
  + DGLocale (deps of DGCustomization)
  + DGRoundControl (deps of DGCustomization)
  * DGCustomization
  + DGTemplate (deps of DGAttribution)
  * DGAttribution
  * DGFullScreen
  * DGTileLayer
  * DGProjectDetector
  * DGMeta
  * DGPoi
  * DGBuildings
  * DGGeoclicker
  * DGEntrance
  * DGLocation


Concatenating JS in 56 modules...

Concatenating CSS in 7 modules...

Compressing JS...

   Uncompressed size: 208.0 KB
   Compressed size:   116.6 KB

Compressing CSS...

   Uncompressed size: 15.4 KB
   Compressed size:   12.2 KB

Build successfully completed!

Запуск веб-сервиса раздачи API

Запуск

node app

Результат:

Load source files successfully completed
Maps API 2.0 server listening on port 3000

После запуска приложение доступно по адресу:

http://127.0.0.1:3000/

Конфигурация веб-сервиса описывается в файле config.main.json, в котором заданы настройки по умолчанию, для переопределения параметров по умолчанию необходимо создать аналогичный файл config.local.json и переопределить нужные параметры, например:

{
    "BASE_URL": "http://maps.api.2gis.local/2.0"
}
Clone this wiki locally