较少的CSS编译器返回空白


8

我什至不知道从哪里开始调试它。几个月前,我可以很高兴地从LESS文件中编译CSS。今天,我跑无论是recess --compile test.lesslessc test.less,我只是得到了一个空白的输出。没有错误。lessc test.less > test.css只是创建一个空白文件。twitter-bootstrap Makefile中的LESS错误,无济于事。

我正在使用以下简单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 2012年

Answers:


7

在Ubuntu和其他发行版中,您应该更喜欢发行版软件包,而不是手动安装软件包。因此,首先,您应该删除通过npm安装的凹槽

sudo npm uninstall recess -g

还要删除通过安装的无节点软件包apt-get,以便我们可以从一个干净的环境开始:

sudo apt-get remove node-less

发出这两个命令后,请确保以下文件不存在,如果存在,请删除它们:

/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

所有这些文件和目录都可以通过各种方式生成。不同的安装方法会导致使用不同的目录。删除所有文件对于确保没有冲突很重要:您应该始终在系统上安装一个软件版本,并且只有一个版本。唯一的例外是,发行版本身提供了同一软件的不同版本(在这种情况下,制作软件包时应避免彼此冲突)。

现在您有了一个干净的环境,可以安装无节点的

sudo apt-get install node-less

请注意,无节点程序包不会附带/usr/bin/recess,只是/usr/bin/lessc,因此如果recess --compile失败(或者更好的是,它必须失败)是完全可以的。

如果lessc仍然无法使用,请检查的输出which lessc。请记住:如果返回的确不同于/usr/bin/lessc,则意味着您不是在使用分发包中的lessc,而是使用其他东西。


您不需要使用发行版软件包,但是将提供相似二进制文件的发行版软件包和已编译的软件包混合使用确实可以解决问题。
哈维尔·里维拉

@哈维尔:嗨。当然,您不需要仅选择分发软件包,但是我们在Ask Ubuntu上,我认为最合适的解决方案是告诉您如何使用分发软件包的解决方案。:-)
Andrea Corbellini 2012年

只是一个很好的答案,感谢您的仔细解释。现在一切都按预期进行。不知道如何减少安装的npm的过时版本,但请注意不要混用类似的发行版和编译包。可惜的是,它是通常不可能只在发行包依靠虽然,特别是在与红宝石等
cboettig

1
@cboettig:非常感谢您的反馈。正如哈维尔(Javier)指出的那样,您不必强迫使用分发包。但是,在安装第三方软件时,请记住不要在系统范围内安装它。例如,当我需要运行发行版未提供的软件时(或需要特殊的系统配置时),我使用Python Virtualenv,chroot,Linux容器(LXC)和Qemu虚拟机。所有这些技术(以及许多其他技术)可帮助您隔离软件,从而避免痛苦。
Andrea Corbellini 2012年

奔跑lessc给予/usr/local/bin/lessc no such file or directory,但奔跑which lessc给予/usr/bin/lessc。我如何告诉它使用from的lessc which lessc
Jacob Valenta 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.