web-dev-qa-db-fra.com

MOINS compilateurs CSS retournant en blanc

Je ne sais même pas par où commencer pour déboguer cela. Il y a quelques mois, je pouvais compiler avec bonheur mon CSS à partir de mes fichiers LESS. Aujourd'hui, je lance soit recess --compile test.less ou lessc test.less et je n'obtiens qu'un résultat vierge. Aucune erreur. lessc test.less > test.css crée simplement un fichier vide. Les erreurs Makefile for LESS de Twitter-bootstrap, que ce soit de manière inutile.

J'utilise le simple test.less suivant pour déboguer:

@color: #4D926F;
#header {
  color: @color;
}
h2 {
   color: @color;
}

Je suis sur Ubuntu 12.10, j'ai utilisé Sudo apt-get install node-less pour fournir lessc, et installé en retrait des instructions sur github (npm). Les deux me donnent juste une sortie vide.

Même lessc --version ne renvoie rien.

 which lessc

montre

/usr/local/bin/lessc

et le fichier n'est pas vide.

Quelque chose a dû arriver à mon installation node peut-être, mais je ne sais pas comment déboguer cela. apt-get remove --purge node-less et la réinstallation n'a pas aidé.

Merci beaucoup pour l'aide ou des conseils sur le débogage!

8
cboettig

Dans Ubuntu et d'autres distributions, vous devriez préférer les paquets de distribution plutôt que de les installer manuellement. Donc, tout d’abord, vous devez supprimer le retrait installé via npm:

Sudo npm uninstall recess -g

Supprimez également le paquet node-less installé via apt-get, afin de pouvoir commencer avec un environnement propre:

Sudo apt-get remove node-less

Après avoir émis ces deux commandes, assurez-vous que les fichiers suivants n'existent pas et, le cas échéant, supprimez-les:

/usr/bin/lessc
/usr/local/bin/lessc

Vérifiez également les répertoires suivants (et supprimez-les s'ils existent):

/node_modules/less
/usr/bin/node_modules/less
/usr/node_modules/less
/usr/local/bin/node_modules/less
/usr/local/node_modules/less
~/.node_modules/less
~/.node_libraries/less

Tous ces fichiers et répertoires peuvent être générés de différentes manières. Différentes méthodes d'installation conduisent à différents répertoires utilisés. La suppression de tous ces fichiers est importante pour garantir que rien ne soit en conflit: vous devez toujours disposer d'une, et d'une seule, du logiciel installé sur votre système. La seule exception est lorsque la distribution elle-même fournit différentes versions du même logiciel (dans ce cas, les packages sont créés de manière à ne pas entrer en conflit).

Maintenant, vous avez un environnement propre et pouvez installer node-less:

Sudo apt-get install node-less

Notez que le paquet node-less ne livre pas /usr/bin/recess, mais simplement /usr/bin/lessc, il est donc parfaitement correct si recess --compile échoue (ou, mieux, doit échouer).

Si lessc ne fonctionne toujours pas, veuillez vérifier le résultat de which lessc. Rappelez-vous que s'il retourne quelque chose de différent de /usr/bin/lessc, cela signifie que vous n'utilisez pas lessc du paquet de distribution, mais quelque chose d'autre.

7
Andrea Corbellini

Après avoir suivi les étapes de la réponse d'Andrea, vous devrez peut-être exécuter source ~/.bashrc si vous obtenez bash: /usr/local/bin/lessc: No such file or directory lorsque vous exécutez lessc et que which lessc affiche /usr/bin/lessc. Ceci permet de mettre à jour votre variable d’environnement $ PATH.

3
Brayden Williams