Linux下的Less编译器

43

有没有类似 less.app 的东西可以将 LESS 编译成 CSS?我不关心 GUI,也不想通过 NPM(node.js 包管理器)安装它。


16
只需运行命令 #apt-get install node-less,然后执行 $lessc styles.less 即可。 - Ivan Kharlamov
less.app可以监控文件并自动重新编译它们。如果您正在寻找Linux上的自动编译,以下是如何操作的链接:https://dev59.com/kWYr5IYBdhLWcg3whKit#13671970 - romaninsh
24
为什么这个问题会被关闭为“不具建设性”呢?它只是一个很普通的技术问题,并且在我看来并不“可能”引起“争论、辩论、投票或长时间讨论”——也没有出现这种情况。 - Teemu Leisti
4
我同意@Teemu Leisti的看法。我真的不明白为什么会关闭这个。 - monotasker
Autoless 对我来说很好用。没有 GUI,可以使用 @import,并且编译只需要半秒钟。不过它确实是通过 npm 安装的。 - Alexander Rechsteiner
显示剩余2条评论
7个回答

49

虽然推荐使用node.js版本,但你也可以将less安装为ruby gem:

sudo apt-get install rubygems1.8 ruby1.8-dev
sudo gem install rubygems-update
sudo gem update rubygems
sudo gem install less

然后使用 /var/lib/gems/1.8/bin/lessc 中的 lessc 工具,所以你可能需要创建符号链接:

sudo ln -s /var/lib/gems/1.8/bin/lessc /usr/bin/

或者将 Ruby gems 目录添加到 PATH 环境变量中:

export PATH=/var/lib/gems/1.8/bin:$PATH

编辑:

使用lessc,可参考这里:

命令行用法

Less带有一个二进制文件,可以让你从命令行调用编译器,例如:

$ lessc styles.less

使用以下命令将编译后的CSS输出到标准输出,然后可以将其重定向到所需的文件:

$ lessc styles.less > styles.css

为了输出压缩后的 CSS,请简单地使用 -x 选项。


1
我已经编辑了我的答案,但基本上是将类Unix的输出重定向到文件(lessc styles.less > styles.css)。 - Grzegorz Rożniecki
1
有没有办法监视文件? - Rigel Glen
1
这个答案不起作用。它会导致 gem_original_require': no such file to load -- v8 (LoadError)。为了解决这个问题,使用以下命令添加一个必要的 Ruby gem:sudo gem install therubyracer" - Artur Bodera
1
+1,尽管在Ubuntu 12.04上我的lessc gem路径略有不同(/var/lib/gems/1.8/gems/less-2.2.2/bin/lessc)。 - JamesHalsall
1
如果要安装gem 'therubyracer'来使用Less,请尝试:sudo gem install therubyracer - kenorb
显示剩余8条评论

8

在 Fedora 或 CentOS 发行版中,您应该:

$ sudo yum install rubygems
$ sudo yum install gcc-c++
$ sudo yum install ruby-devel     
$ sudo gem install less
$ sudo gem install therubyracer 

$ lessc yourLessFile.less > yourCssFile.css

8

您还可以使用这个工具:http://wearekiss.com/simpless,它拥有美观的GUI界面和监视进程功能,在编辑时自动更新文件。


就此而言,在使用simpleLESS 1.3时,似乎在ubuntu 11.10 x64上出现了故障。 - Tim Howland
3
问题在于SimpleLess是使用跨平台开发工具创建的。在Linux系统中存在很大的漏洞。现在,它正在“移交给社区”,因此,在社区接手并为Linux版本进行开发之前,我认为没有未来可以修复这些漏洞。 - Luis Lobo Borobia
我认为这些 Bug 是由使用的框架 - Titanium - 而不是 SimpLESS 本身引起的。我无法在 11.10 上运行任何 Titanium 应用程序。我猜我们必须等到 Titanium 最终解决它。 - js-coder
@LuisLoboBorobia 这些错误已经修复了吗?我无法在Ubuntu上安装SimpleLess,这是一个错误还是我做错了什么?只是下载并提取文件,似乎没有安装.sh或类似的东西。谢谢。 - YogiZoli

3
我创建了一个使用node.js less编译器的wxPython GUI应用程序,目前还处于非常早期的阶段。欢迎任何人贡献代码。我计划让它与MacOS的LessCSS应用程序非常相似。 https://github.com/luislobo/Lobo-LessCSS-Compiler

现在,它会编译同一文件夹中的较少文件。现在我正在编写目标路径配置/选择器。 - Luis Lobo Borobia
如果您能继续这个项目,那将是非常棒的。 - darksoulsong
我没有继续的时间,于是找到了一个“简单”的解决方案:我创建了compile.sh脚本,然后使用incron进行了调度,也许这在此期间对你有所帮助。 - Luis Lobo Borobia

2
一种解决方案是在此处讨论的bash脚本:https://www.maltheborch.com/2011/09/less-app-on-linux,也可以在这里找到:https://gist.github.com/malthe/1234308 它需要node、lessc和inotify-tools(一个用于监视文件更改的小型库)。只需将其放入一个文件中,使该文件可执行,然后以目录作为参数运行即可。
缺点是虽然它会递归地监视一个目录,但它只会编译已修改的文件--它没有自动编译导入正在工作的文件的less文件的能力。
更新:另一个类似的选择是这个稍微复杂一些的bash脚本,它增加了一些功能:http://code.krml.fr/less.app

你提供的链接已经失效了 :( - mhmpl

1
我知道这个回答有些“太晚”了,但我最近尝试为Linux构建一个简单的GUI。使用JAVA和less.js,不仅可以在Linux上进行构建,还可以跨平台使用。 Simpless已经不再受支持(如他们的博客中所写的在1.3版本之后),而Crunch使用的Adobe Air也已经过时了。 以下是我的项目链接:http://project.splashfish.de/Le-css/

0

对于Java,有一个名为wro4j的开源工具。

它使用Rhino作为底层引擎将Less编译为CSS,但如果您的环境支持,也可以使用Node.js。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接