Per gli utenti più esperti è possibile anche compilare una versione ad-hoc della libreria. Questa opzione è molto utile per poter ridurre la grandezza della liberie nel caso si utilizzi solo una parte dei suoi strumenti. Se ad esempio nella nostra applicazione utilizziamo solo dei WMS e, magari, solo dei file vettoriali in formato GeoJSON, potremmo crearci una versione ridotta di OL contenente solo le parti necessarie.

Nella documentazione di OL è spiegato passo passo come si crea una “custom build”. In estrema sintesi è necessario indicare in un file di configurazione, normalmente utilizzato in fase di creazione (build) della libreria, quali parti del codice vogliamo esportare nella nostra libreria. Dopodiché si dovrà procedere con la creazione della libreria stessa, tramite il relativo task NodeJS:

Es.:

{
  "exports": [
    "ol.Map",
    "ol.View",
    "ol.control.defaults",
    "ol.layer.Tile",
    "ol.source.OSM"
  ],
  "compile": {
    "externs": [
      "externs/bingmaps.js",
      "externs/cartodb.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"
    ],
    "extra_annotation_name": [
      "api", "observable"
    ],
    "compilation_level": "ADVANCED",
    "manage_closure_dependencies": true,
    "rewrite_polyfills": false
  }
}

In questo esempio nella libreria finale troveremo soltanto gli oggetti elencati dentro “exports”. Nella configurazione di una compilazione normale il contenuto di questa proprietà è “*”.

Il comando di compilazione (lanciato dalla cartella radice del codice sorgente della libreria):

$ node tasks/build.js build/ol-custom.json build/ol-custom.js

genererà il file ol-custom.js, che è la libreria ridotta.