题 没有红宝石的Sass或指南针?


有没有办法在没有Ruby的情况下使用Sass或Compass或类似的东西?

我一直在寻找谷歌和这个网站,找不到任何东西,任何帮助将不胜感激。谢谢


97
2017-09-29 22:17


起源


Node.js端口 (和 Node.js - express - jade - 编译SASS / LESS)。 - Jared Farrish
这是一个真正的问题吗?我的意思是不清楚你的意思。还有其他不依赖Ruby的CSS预处理器吗?是。有没有办法在没有Ruby的情况下编译Sass?依靠。我们需要更多背景。 - Jamund Ferguson
但是,您没有指定您希望编写解析器的语言。 - Alejandro García Iglesias
有没有办法下载预编译版本? - William


答案:


Sass最初是为Ruby编写的,但现在他们已经创建了 libSass 这是一个 C/C++ Sass引擎的端口,可以更轻松地将引擎集成到IDE或其他语言中。此时,您可以在Ruby中使用Sass引擎, Node.js的蟒蛇PHPJava的。净 和别的。有关更多信息,请访问 libSass。此外,您的IDE可能有一个支持Sass的插件,而不需要使用libSass来支持ruby。

以下原始答案可能适用于您的情况,也可能不适用(取决于您的语言是否已实现对libSass的支持)。我决定以归档原因保留原样。


Sass(需要Ruby)

Sass是用Ruby编写的,所以你也需要安装Ruby。    取自萨斯的网站

指南针(需要Ruby,因为它基于SASS)

Compass是一个开源的CSS创作框架,它使用Sass样式表语言使编写样式表变得强大而简单。    取自指南针的网站

Less(以js编写,需要包含在页面中的node.js或更少.js)

LESS使用动态行为扩展CSS,例如变量,mixins,操作和函数。 LESS可以在客户端(Chrome,Safari,Firefox)和服务器端运行,包括Node.js和Rhino。 取自Less的网站

这些是我所知道的主要处理器。 您可以为任何其他选择的语言编写自己的解析器/端口。

换句话说,没有Ruby就不能使用sass / compass,因为程序本身(sass和指南针)是用Ruby编写的。所以你肯定需要它才能运行它。


49
2017-09-29 23:02



这在技术上是准确的,但并不是真正的重点,因为各种插件可以为您处理它。例如,在Visual Studio中有Mindscape Workbench插件,它具有独立的ruby环境,您不必担心。它不会包括指南针,但这是一种下降。 - George Mauer
@TroyCosentino或Stylus - Alejandro García Iglesias
不,我没有尝试在其他语言中找到类似的编译器。您应该能够从头开始编写几乎任何不错的语言,但这很可能会花费您很多时间。首先,你必须能够解析css(并检测css语法中的任何错误),然后你必须“编译”(这主要是重新格式化 - 即css代码是一行)css。之后你很可能想要添加多个带继承的css。如果您觉得自己有时间,可以尝试一下,与我们分享结果:) - tftd
在使用dotLESS NuGet包的.NET中本地也可以使用LESS。 - David Boike


这个问题确实不够明确,但我会尝试解决一些问题。那里  其他不依赖Ruby的CSS预处理器(我现在想到的两个就是 ,我已经习惯和喜欢,但没有Sass那么强大,而且 唱针,我没有使用,都基于JavaScript),但是因为你特别询问Sass +指南针,而且我仍在寻找相同的答案,我会谈论这个。

@JamundFerguson说:

有没有办法在没有Ruby的情况下编译Sass?依靠。

Sass是一种预处理语言。有一个用Ruby构建的编译器,任何人都可以用任何语言编写编译器。有一个叫做Sass编译器的C实现 libsass 它可以用于任何允许导入C libs的语言。它是由...使用的库 节点萨斯,这是一个内置的编译器 Node.js的,我还没有尝试过,也不知道它是如何工作的,如果它已准备好用于生产。 Compass被移植可能是一个时间问题(也许你最终会这样做?)因此我们可以拥有一个不依赖于Ruby gem的编译器(目前,有一个 节点指南针 那个模块  依赖于Ruby gem)。

其他语言

到目前为止,我已经提到了Node.js编译器的可能性,正如您所知,它是一个JavaScript环境,是Web语言和我选择的语言。但是你没有指定编写编译器的语言。我认为可能有许多语言编译的编译器,例如@EricMeyer提到了一个 蟒蛇 编译器。也许他正在使用 pyScss?这似乎内置了对Compass的支持。但是你需要一个Python环境。所以事情是: 你需要 一些 编译器的环境 除非你运行本机编译的二进制文件。 (Less.js可以包含在页面上以运行客户端并避免编译步骤,但它并不意味着在生产中使用它。)

原生应用

我已经工作了一年 CodeKit非常好,编译Sass / Compass,Less,Stylus和模板语言,如Haml,Slim,Jade等。当资产自动更改并且您立即在浏览器中看到更改时,重建资产。我唯一不喜欢的是,当移动到另一台计算机,安装CodeKit,检查项目并尝试使用它时,我不得不重新配置项目设置,我必须记住这样我才能进行构建就像我在另一台电脑上制作的一样。此外,我开始与团队合作,他们还使用相同的设置配置项目(有时没有相同的项目配置导致丑陋的不一致),并且使用Ubuntu的团队成员也无法使用它。这就是为什么我开始考虑制作一个命令行工具来构建项目并发现 咕噜 马上,爱上了它。 就像@Dave提到的那样 侦察 而且还有 LiveReload,但没有使用它们。

结论

结论是我没有一个强有力的结论。我仍然在寻找相同的答案,但我希望这个答案能够对在Ruby环境之外编译Sass / Compass的状态有所了解。


27
2018-04-20 00:20



对于libsass的状态: solitr.com/blog/2014/01/state-of-libsass,node-sass和其他sass-libraries依赖于哪些。 - Ehtesh Choudhury


实际上有一个库为Node.js提供绑定到libsass,即Sass的C版本: https://npmjs.org/package/node-sass

它允许您在没有安装Ruby的情况下以令人难以置信的速度本地编译.scss文件到css。

要安装刚刚运行:

npm install node-sass

如果需要,还有一个Grunt扩展: https://github.com/sindresorhus/grunt-sass (这是我在这个问题上一直在寻找的)

了解更多信息: https://github.com/andrew/node-sass


25
2018-01-22 21:03



grunt-sass是我一直在寻找的。 - 9ilsdx 9rvj 0lo


只需稍微更新一下,您就可以使用SCSS / SASS文件并动态生成正确的文件,而无需使用名为Scout的程序安装Ruby。

Scout有自己独立的ruby环境,并用java编码,因此请确保在使用之前java是最新的。 林基在这里。

问候 :)


11
2018-01-07 19:33



我宁愿ruby over java;) - basarat
实际上,此刻我写这个Scout使用的是Adobe Air。也许旧版本使用Java? - iconoclast
仍然红宝石比空气更好:) - x0x


你可以实际解析没有ruby的sass,你可以使用node-sass。 详情如下: https://github.com/andrew/node-sass


3
2017-11-15 22:41





如果这是针对.NET的,那么现在就有了 libsass的包装器。可从 的NuGet


2
2017-12-25 11:22





Adobe Brackets (免费,开源)可以在文件更改时编译LESS,SASS和Stylus,并在实时预览期间更新样式,您只需要从扩展管理器安装所需的扩展。 得到 括号 享受 !

编辑:正如其他问题所示 节点萨斯 如果已经安装了nodejs,这也是一个不错的选择。


2
2017-09-18 08:11