Sur un projet avec le thème Bootstrap, nous utilisons less pour simplifier la création des fichiers css.
S'il est possible de compiler manuellement les fichiers avec la commande lessc, il est plus productif de compiler ces fichiers automatiquement dès qu'un changement est intervenu.
Il faut noter que node.js est un pré-requis à l'installation de lessc
Installer node.js
Plusieurs options sont possibles :
- via apt-get : on récupère une version assez ancienne
- via des PPA sur Debian ou Ubuntu
- via les binaires
- via les sources
Pour disposer de la dernière version, il vaut mieux partir sur les options 3 ou 4, sachant que l'option 4 est de loin la plus rapide...
Il faut auparavant avoir installé python.
Par apt-get
Sur certaines distributions, il est possible d'installer nodejs directement via les paquets du système.
sudo apt-get install nodejs npm
Ceci récupère une version assez ancienne (sur une ubuntu 12.10, il s'agit de la version 0.6.19, alors que la dernière version est 0.10.28).
Via un PPA spécifique
Cette méthode permet d'utiliser les fonctionnalités de mises à jour. Il faut déclarer 2 PPA : l'un pour node.js, l'autre pour npm.
sudo apt-get install python-software-properties software-properties-common sudo add-apt-repository ppa:chris-lea/node.js sudo add-apt-repository ppa:gias-kay-lee/npm sudo apt-get update sudo apt-get install nodejs npm
Via les binaires
On peut également récupérer les binaires directement sur le site nodejs.org :
- Aller sur http://nodejs.org/dist/latest/
- Récupérer la dernière version
cd /tmp wget http://nodejs.org/dist/latest/node-v0.10.28-linux-x64.tar.gz cd /usr/local tar --strip-components 1 -zxf /tmp/node-v0.10.28-linux-x64.tar.gz
La dernière version contient npm
node -v v0.10.28 npm -v 1.4.9
Via les sources et une compilation
On récupère les sources via git, après avoir installé les composants pré-requis :
apt-get install git python gcc make apt-get install build-essential openssl libssl-dev pkg-config git clone --depth=1 https://github.com/joyent/node.git cd node git tag git checkout (last version) ./configure make sudo make install
Les dernières versions de node.js embarquent également npm.
Note : l'option depth=1 permet d'éviter de récupérer l'ensemble de l'arborescence git.
Installer less
npm install less --global
L'option --global permet d'installer less au niveau global sur le serveur (dans /usr/local/bin) plutôt que dans le répertoire courant.
Installer le programme de "Watch Compiler"
Récupérer le zip sur github
https://github.com/jonycheung/Dead-Simple-LESS-Watch-Compiler
cd /opt wget https://github.com/jonycheung/Dead-Simple-LESS-Watch-Compiler/archive/master.zip unzip master.zip mv Dead-Simple-LESS-Watch-Compiler-master less_watch_compiler
ou via git :
cd /opt git clone https://github.com/jonycheung/Dead-Simple-LESS-Watch-Compiler.git mv Dead-Simple-LESS-Watch-Compiler-master less_watch_compiler
Mettre en place la surveillance d'un répertoire
En admettant que les fichiers LESS à surveiller sont dans le répertoire /var/www/drupal/sites/all/themes/bootstrap_custom/
:
cd /var/www/drupal/sites/all/themes/bootstrap_custom/ nohup node /opt/less_watch_compiler/less-watch-compiler.js less css > ./less.compile 2>&1 &
La commande nohup permet de quitter la connexion de la console sans arrêter le traitement.