Entendendo builds personalizados

O OpenLayers é uma extensa biblioteca que fornece muitas funcionalidades. Assim, é improvável que uma aplicação precise e faça uso de todas as funcionalidades que a biblioteca possui. Builds personalizados (chamados de application-specific builds) são builds que contém somente as funções do OpenLayers que sua aplicação utilizará. Eles são geralmente muito menores do que um build completo, portanto, criar builds personalizados é muitas vezes uma boa ideia.

Requerimentos

Os builds do OpenLayers são criados a partir do Compilador Closure. O objetivo deste compilador é gerar um JavaScript menor e que rode mais rápido.

O Compilador Closure é um programa java, então para executá-lo precisamos da máquina virtual Java (JVM). Portanto, antes de passar para a próxima seção e criar um build personalizado, veja se o Java está instalado em sua máquina.

Você precisa somente do Java Runtime Environment, que você pode baixar no site da Oracle. Por exemplo, para Windows, você pode baixar e instalar o arquivo jre-8u60-windows-i586.exe.

Arquivo de configuração do Build

Criar um build personalizado requer um arquivo de configuração. O formato do arquivo é JSON. Segue um exemplo de arquivo de configuração:

{
  "exports": [
    "ol.Map",
    "ol.View",
    "ol.layer.Tile",
    "ol.source.OSM"
  ],
  "jvm": [],
  "umd": true,
  "compile": {
    "externs": [
      "externs/bingmaps.js",
      "externs/closure-compiler.js",
      "externs/esrijson.js",
      "externs/geojson.js",
      "externs/oli.js",
      "externs/olx.js",
      "externs/proj4js.js",
      "externs/tilejson.js",
      "externs/topojson.js"
    ],
    "define": [
      "goog.dom.ASSUME_STANDARDS_MODE=true",
      "goog.DEBUG=false",
      "ol.ENABLE_DOM=false",
      "ol.ENABLE_WEBGL=false",
      "ol.ENABLE_PROJ4JS=false",
      "ol.ENABLE_IMAGE=false"
    ],
    "jscomp_error": [
      "*"
    ],
    "jscomp_off": [
      "analyzerChecks",
      "lintChecks",
      "unnecessaryCasts",
      "useOfGoogBase"
    ],
    "extra_annotation_name": [
      "api", "observable"
    ],
    "compilation_level": "ADVANCED",
    "warning_level": "VERBOSE",
    "use_types_for_optimization": true,
    "manage_closure_dependencies": true
  }
}

A parte mais relevante da configuração é o array exports. Nele estão declaradas as funções/construtores que você usou em seu código JavaScript. Por exemplo, a configuração acima é o que você precisará para executar o código abaixo:

var map = new ol.Map({
  target: 'map',
  layers: [
    new ol.layer.Tile({
      source: new ol.source.OSM()
    })
  ],
  view: new ol.View({
    center: [0, 0],
    zoom: 4
  })
});

results matching ""

    No results matching ""