-
Notifications
You must be signed in to change notification settings - Fork 34
Сборка API Карт
Утилита для сборки располагается в папке build и позволяет получить готовое приложение с необходимым набором плагинов. Помимо сборки с помощью CLI/grunt осуществляется минификация и проверка кода на соответствие соглашениям.
- build/config.js – описание путей/настроек для утилиты
- build/deps.js – список зависимостей модулей
- .jshintrc – настройки 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.
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)
grunt build --mod=Module1,Module2,Module3
где Module1,Module2,Module3 - названия модулей API.
Например:
grunt build --mod=DGGeoclicker,DGLocation
grunt build --pkg=package_name
где package_name - имя пакета. Список и описание доступных пакетов находится в файле build/packs.js.
Пример:
grunt build --pkg=online
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!
node app
Результат:
Load source files successfully completed
Maps API 2.0 server listening on port 3000
После запуска приложение доступно по адресу:
Конфигурация веб-сервиса описывается в файле config.main.json, в котором заданы настройки по умолчанию, для переопределения параметров по умолчанию необходимо создать аналогичный файл config.local.json и переопределить нужные параметры, например:
{
"BASE_URL": "http://maps.api.2gis.local/2.0"
}