Compilar Openlayers 3 en Windows, sin morir en el intento

Si eres programador, trabajas sobre SIG, y por desgracia, tienes que hacer clientes SIG Web, creo que conocerás la solución “Openlayers” que nos hace la vida mas sencilla a todos los que nos peleamos a diario con esto…

Openlayers 3 Logo

Openlayers 3

El salto de la rama 2.x a la 3.x ha sido muy dura. Incluso compilar, desde el código fuente, la rama 3.x es bastante complicado (si vemos como se trabajaba en la version 2.x). Y recompilar el código es una necesidad cuando no paran de encontrarse errores y pequeños fallos (recordemos que estamos en una beta). Errores como por ejemplo el que se comenta en este hilo respecto del manejo de las capas “ImageStatic” como fuente de las imágenes.

Bueno pues manos a la obra.

Requisitos:

Os dejo una lista, instala todos por defecto y que estén en el disponibles en el PATH:

  • Git
  • Node.js
  • Python 2.6/2.7
  • Java 7 (yo usé el JRE)

Una cosa muy curiosa es que Python se tiene que instalar en “C:\Python27” o “C:\Python26” o no funcionará este sistema.

Git haz tu trabajo

Nos traemos el repositorio entero de OL3 desde Github (te recomiendo una ruta corta, tipo “C:\ol3” que es la que voy a usar a lo largo del manual):

git clone https://github.com/openlayers/ol3.git

Esto tardará un rato… es la hora del café!

Dependencias… y algo de magia

Bien, ahora comprobamos si tenemos todo lo que necesitamos:

C:\ol3>build.py checkdeps
Program "./node_modules/.bin/cleancss" seems to be MISSING.
Program "git.exe" seems to be present.
Program "C:Python27\Scripts\gjslint.exe" seems to be MISSING.
Program "C:\Program Files\jsdoc3\jsdoc.cmd" seems to be MISSING.
Program "./node_modules/.bin/jshint" seems to be MISSING.
Program "C:Python27\python.exe" seems to be MISSING.
Program "C:phantomjs-1.9.7-windows\phantomjs.exe" seems to be MISSING.
For certain targets all above programs need to be present.

Fue bonito mientras duró (no iba a funcionar a la primera 🙂

Pero vamos a realiza un par de comandos que nos van a arreglar el asunto:

npm install

Instalará bastantes cosas… otro café?. Por último:

C:\ol3>c:\Python27\Scripts\easy_install.exe http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz
C:\ol3>c:\Python27\Scripts\easy_install.exe pystache 

Y… redoble de tambores:

C:\ol3>build.py checkdeps
Program ".\node_modules\.bin\cleancss.cmd" seems to be present.
Program "git.exe" seems to be present.
Program "gjslint.exe" seems to be present.
Program ".\node_modules\.bin\jsdoc.cmd" seems to be present.
Program ".\node_modules\.bin\jshint.cmd" seems to be present.
Program "python.exe" seems to be present.
Program ".\node_modules\.bin\phantomjs.cmd" seems to be present.
For certain targets all above programs need to be present.

Y ahora la parte más difícil…

… Compilar. Hay mucho fallos en la versión para Windows de los scripts, por lo que hay que bucear un montón por los foros de GitHub para encontrar la solución a problemas en los scripts (rutas largas, directorios que no existen, rutas linux, etc…) yo lo he conseguido, con los scripts siguientes:

Scripts ol3-fix

Descomprime en el raíz del repositorio de Openlayers, y ya puedes lanzar el build.

C:\ol3>build
2014-10-23 11:57:44,256 build/ol.css: .\node_modules\.bin\cleancss.cmd css/ol.css
2014-10-23 11:57:44,424 build/ol.js: node tasks/build.js config/ol.json build/ol.js
info ol Parsing dependencies
info ol Compiling 333 sources
2014-10-23 11:58:06,733 build/ol.js: uncompressed:   406514 bytes
2014-10-23 11:58:06,733 build/ol.js:   compressed:   121282 bytes, (saved 70.17%)
2014-10-23 11:58:06,734 build/ol-debug.js: node tasks/build.js config/ol-debug.json build/ol-debug.js
info ol Parsing dependencies
info ol No compile options found.  Concatenating 333 sources
2014-10-23 11:58:10,434 build/ol-debug.js: uncompressed:  3276814 bytes
2014-10-23 11:58:10,436 build/ol-debug.js:   compressed:   603658 bytes, (saved 81.58%)

Sólo busca en el directorio “build” por las versiones de “debug” y “compressed”.

Referencias:

Share

2 Responses to “Compilar Openlayers 3 en Windows, sin morir en el intento”

  1. Sergio dice:

    Buenas, has probado con la última versión? He seguido tu guía y no me compila :/

    Muchas gracias de antemano.

Leave a Response