A la hora de que Jekyll construya el sitio con jekyll build
o jekyll serve
se pueden establecer distintos “entornos” lo que nos permitirá realizar diferentes acciones en función de que estemos en un entorno de desarrollo (si estamos todavía “trasteando”) o en uno de producción (cuando queremos el producto final que vamos a subir al servidor).
Por defecto, Jekyll se ejecuta en un entorno de desarrollo, definido por la variable JEKYLL_ENV=development
. A la hora de construir el sitio, se puede establecer otro valor, por ejemplo:
$ JEKYLL_ENV=production bundle exec jekyll build
Esto permite introducir código condicional que sólo se ejecutará en uno de los entornos. Ej:
Además de a través de la variable JEKYLL_ENV
, se pueden establecer diferencias entre los dos entornos creando un archivo de configuración específico para uno de ellos. Estos archivos se pueden concatenar, de forma que el último en ser llamado sobreescribe los valores que coinciden con el primero. Por ejemplo, si en el archivo _config.yml tenemos entre otros los siguientes valores:
url: example.com
sass:
style: :compressed
Se podría tener además un _config_dev.yml al que se llamase en tiempo de ejecución con bundle exec jekyll serve --config _config.yml,_config.dev.yml
que contuviera los siguientes valores:
url: localhost:4000
sass:
style: :expanded
Por último, resulta útil crear un par de alias para agilizar el proceso:
alias jekyll_prod='JEKYLL_ENV=production bundle exec jekyll build'
alias jekyll_des='bundle exec jekyll serve --config _config.yml,_config.dev.yml'