MENO compilatori CSS che ritornano vuoti


8

Non sono nemmeno sicuro da dove iniziare il debug di questo. Mesi fa, potrei felicemente compilare il mio CSS dai miei file MENO. Oggi corro o recess --compile test.lesso lessc test.lesse ho solo un output vuoto. Nessun errore lessc test.less > test.csscrea solo un file vuoto. Il Makefile di twitter-bootstrap per MENO errori, tutto ciò non sia utile.

Sto usando il seguente semplice test.lessper il debug:

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

Sono su Ubuntu 12.10, ero solito sudo apt-get install node-lessfornire lessce ho installato le istruzioni su github (npm). Entrambi mi danno solo un output vuoto.

Neanche lessc --versionrestituisce nulla.

 which lessc

Spettacoli

/usr/local/bin/lessc

e il file non è vuoto.

Forse è successo qualcosa alla mia nodeinstallazione, ma non ho idea di come eseguire il debug. apt-get remove --purge node-lesse la reinstallazione non ha aiutato.

Mille grazie per l'aiuto o eventuali suggerimenti sul debug!


Sì, /usr/local/bin/lesscnon è la posizione corretta quando proviene dal repository ufficiale: pacchetti.ubuntu.com/quantal/all/node-less/filelist ... Immagino che tu l'abbia installato nel percorso di sistema usando sudo npm ...quale è una pessima idea.
dAnjou,

Risposte:


7

In Ubuntu e altre distribuzioni, dovresti preferire i pacchetti di distribuzione anziché installarli manualmente. Quindi, prima di tutto, è necessario rimuovere la rientranza installata tramite npm :

sudo npm uninstall recess -g

Rimuovere anche il pacchetto senza nodi installato tramite apt-get, in modo da poter iniziare con un ambiente pulito:

sudo apt-get remove node-less

Dopo aver emesso questi due comandi, assicurarsi che i seguenti file non esistano e, se esistenti, eliminarli:

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

Controlla anche le seguenti directory (e rimuovile se esistono):

/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

Tutti quei file e directory possono essere generati in vari modi. Diversi metodi di installazione portano a diverse directory utilizzate. La rimozione di tutti quei file è importante per garantire che nulla sia in conflitto: dovresti sempre avere una e una sola versione di un software installato sul tuo sistema. L'unica eccezione è quando la distribuzione stessa fornisce versioni diverse dello stesso software (in questo caso, i pacchetti vengono creati in modo che non siano in conflitto tra loro).

Ora hai un ambiente pulito e puoi installare senza nodi :

sudo apt-get install node-less

Si noti che il pacchetto senza nodo non viene fornito /usr/bin/recess, giusto /usr/bin/lessc, quindi è perfettamente OK se recess --compilefallisce (o, meglio, deve fallire).

Se il lesscproblema persiste, controllare l'output di which lessc. Ricorda: se restituisce qualcosa di diverso /usr/bin/lessc, significa che non stai usando lessc dal pacchetto di distribuzione, ma qualcos'altro.


Non è necessario preferire i pacchetti di distribuzione, ma mescolare pacchetti di distribuzione e compilati che forniscono binari simili è davvero una ricetta per i problemi.
Javier Rivera,

@Javier: ciao. Sicuramente non è necessario scegliere solo pacchetti di distribuzione, ma siamo su Ask Ubuntu e penso che la soluzione più appropriata sia quella che ti dice come usare i pacchetti di distribuzione. :-)
Andrea Corbellini,

Solo una risposta brillante, grazie per l'attenta spiegazione. Ora funziona tutto come dovrebbe. Non sono sicuro di come sia riuscito a ottenere una versione dud di npm meno installata, ma faccio attenzione a non mescolare pacchetti simili distribuiti e distribuiti, è ben noto. È un peccato che spesso non sia possibile fare affidamento solo sui pacchetti di distribuzione, in particolare con ruby, ecc.
cboettig,

1
@cboettig: grazie per il tuo feedback, è molto apprezzato. Come ha sottolineato Javier, non sei obbligato a utilizzare i pacchetti di distribuzione. Ma quando installi software di terze parti, ricorda di non installarlo a livello di sistema. Ad esempio, utilizzo Python Virtualenv, chroots, Linux Containers (LXC) e macchine virtuali Qemu quando devo eseguire software non fornito dalla distribuzione (o quando ho bisogno di configurazioni di sistema speciali). Tutte queste tecnologie (e molte altre) ti aiutano a isolare il software, evitando il dolore.
Andrea Corbellini,

La corsa lessc/usr/local/bin/lessc no such file or directory, ma la corsa which lessc/usr/bin/lessc. Come posso dirlo per usare lessc da which lessc?
Jacob Valenta,

3

Dopo aver seguito i passaggi della risposta di Andrea, potresti dover correre source ~/.bashrcse bash: /usr/local/bin/lessc: No such file or directoryricevi quando esegui lessc e quando gli which lesscspettacoli /usr/bin/lessc. Questo serve per aggiornare la variabile d'ambiente $ PATH.


Nota anche la risposta di unix.stackexchange.com/questions/5609/… in aggiunta a questa.
Jeppe Mariager-Lam,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.