空白を返すLESS CSSコンパイラ


8

これのデバッグをどこから始めればよいのかさえわかりません。数か月前、LESSファイルからCSSを楽しくコンパイルできました。今日、recess --compile test.lessまたはのいずれかを実行するlessc test.lessと、空白の出力が表示されます。エラーはありません。lessc test.less > test.css空のファイルを作成するだけです。LESSエラー用のtwitter-bootstrap Makefileは、役に立ちません。

私は次のtest.lessデバッグを簡単に使用しています:

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

私はubuntu 12.10を使用sudo apt-get install node-lessしていてlessc、以前はgithub(npm)の指示からを提供し、インストールされています。どちらも空の出力を出します。

lessc --version何も返しません。

 which lessc

ショー

/usr/local/bin/lessc

そしてファイルは空ではありません。

私のnodeインストールでおそらく何かが起こったに違いありませんが、これをデバッグする方法がわかりません。 apt-get remove --purge node-less再インストールしても解決しませんでした。

ヘルプやデバッグのヒントに感謝します!


ええ、/usr/local/bin/lesscそれが公式のリポジトリからのものであるとき、正しい場所ではありません:packages.ubuntu.com/quantal/all/node-less/filelist ...私はあなたがシステムパスにそれをインストールしたと思いますsudo npm ...が、これは本当に悪い考えです。
dAnjou

回答:


7

Ubuntuおよびその他のディストリビューションでは、手動でパッケージをインストールするよりも、ディストリビューションパッケージを優先する必要があります。したがって、まず最初に、npmを介してインストールされたリセスを削除する必要があります。

sudo npm uninstall recess -g

また、を介してインストールされたノードレスパッケージを削除apt-getして、クリーンな環境で開始できるようにします。

sudo apt-get remove node-less

これらの2つのコマンドを発行した後、次のファイルが存在しないことを確認し、存在する場合は削除します。

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

次のディレクトリも確認してください(存在する場合は削除します)。

/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

これらすべてのファイルとディレクトリは、さまざまな方法で生成されます。インストール方法が異なると、使用されるディレクトリも異なります。すべてのファイルを削除することは、競合が発生しないようにするために重要です。システムにインストールされているソフトウェアのバージョンは常に1つだけで、1つだけでなければなりません。唯一の例外は、ディストリビューション自体が同じソフトウェアの異なるバージョンを提供する場合です(この場合、パッケージは互いに競合しないように作成されます)。

これでクリーンな環境になり、ノードレスでインストールできます

sudo apt-get install node-less

ことを注意ノードレスパッケージが付属していません。/usr/bin/recessただ、/usr/bin/lesscそれがあれば完全にOKですので、recess --compile失敗した(または、より良い、それはしなければならない失敗)。

lesscそれでも機能しない場合は、の出力を確認してくださいwhich lessc。覚えておいてください:それがとは異なる何かを返す場合/usr/bin/lessc、それはあなたが配布パッケージのlesscではなく、他のものを使用していることを意味します。


ディストリビューションパッケージを優先する必要はありませんが、同様のバイナリを提供するディストリビューションパッケージとコンパイル済みパッケージを混在させることは、実際には問題のレシピです。
Javier Rivera

@ハビエル:こんにちは。確かに、配布パッケージだけを選択する必要はありませんが、私たちはAsk Ubuntuを使用しており、最も適切な解決策は配布パッケージの使用方法を説明するものだと思います。:-)
Andrea Corbellini、2012

丁寧な説明ありがとうございます。すべてが正常に機能しています。どのようにしてnpmのdudバージョンを少なくインストールできたかはわかりませんが、類似のディストリビューションとコンパイル済みのパッケージを混在させないように注意しています。これは、など、それは特にルビーで、けれども唯一のディストリビューションのパッケージに依存することが多いことはできませんが残念です
cboettig

1
@cboettig:フィードバックに感謝します。本当に感謝しています。Javierが指摘したように、配布パッケージを使用する必要はありません。ただし、サードパーティのソフトウェアをインストールする場合は、システム全体にインストールしないでください。たとえば、ディストリビューションで提供されていないソフトウェアを実行する必要がある場合(または特別なシステム構成が必要な場合)、Python Virtualenv、chroots、Linux Containers(LXC)、およびQemu仮想マシンを使用します。これらすべてのテクノロジー(および他の多くのテクノロジー)は、ソフトウェアを分離し、痛みを回避するのに役立ちます。
Andrea Corbellini、2012

実行lesscは与える/usr/local/bin/lessc no such file or directoryが、実行which lesscは与える/usr/bin/lessc。からlesscを使用するようにするにはどうすればよいwhich lesscですか?
Jacob Valenta 2014

3

アンドレアの答えからの手順を実行した後、あなたは実行する必要がありsource ~/.bashrc、あなたが取得している場合はbash: /usr/local/bin/lessc: No such file or directory、あなたがlesscと実行時にwhich lesscショーを/usr/bin/lessc。これは、$ PATH環境変数を更新するためのものです。


これに加えて、unix.stackexchange.com / questions / 5609 /…からの回答にも注意してください。
Jeppe Mariager-Lam 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.