无红宝石的Sass或Compass?


102

没有Ruby,有没有办法使用Sass或Compass或类似的东西?

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



3
这是一个真实的问题吗?我的意思是不清楚你的意思。还有其他不依赖Ruby的CSS预处理器吗?是。有没有没有Ruby的Sass编译方法?要看。我们需要更多背景。
Jamund Ferguson 2012年

但是您没有指定希望将解析器写入哪种语言。
亚历杭德罗·加西亚·伊格莱西亚斯

1
有没有下载预编译版本的方法?
威廉

Answers:


53

Sass最初是为Ruby编写的,但是现在他们创建了libSass,它是C/C++Sass引擎的端口,这使得将引擎集成到IDE或其他语言中变得更加容易。此时,您可以在Ruby,Node.jsPythonPHPJava.NET等中使用Sass引擎。有关更多信息,请访问libSass。另外,您的IDE可能有一个支持Sass的插件,而无需使用libSass来使用ruby。

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


Sass(需要Ruby)

Sass是用Ruby编写的,因此您还需要安装Ruby。 取自sass的网站

Compass(需要Ruby,因为它基于SASS)

Compass是一个开放源代码CSS创作框架,该框架使用Sass样式表语言使编写样式表功能强大而轻松。 取自指南针网站

更少(用js编写,要求页面中包含node.js或less.js)

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

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

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


从技术上讲这是准确的,但并不是很准确,因为各种插件都可以为您解决这个问题。例如,在Visual Studio中,有一个Mindscape Workbench插件,该插件具有独立的红宝石环境,您无需担心。它不会为您提供指南针,但是这有点令人沮丧。
乔治·莫尔

@TroyCosentino或Stylus
AlejandroGarcíaIglesias

不,我没有尝试寻找其他语言的类似编译器。您应该能够使用几乎任何体面的语言从头开始编写编译器,但这很可能会花费您很多时间。首先,您必须能够解析css(并检测css语法中的任何错误),然后必须“编译”(大部分是重新格式化-即css代码是一行)css。之后,您很可能想要添加具有继承的多个CSS。如果您有时间,可以尝试做,并与我们分享结果:)
tftd 2013年

1
也可以使用dotLESS NuGet包在.NET中以本地方式提供LESS。
David Boike

27

确实,这个问题还不够清楚,但是我将尝试解决一些问题。还有不依赖于红宝石(二来我的脑海其他CSS预处理器现在是,我已经使用并喜欢,但不是那样强大无礼的话,和手写笔,我没有用过,两者均基于JavaScript),但是当您具体询问Sass + Compass时,由于我仍在寻找相同的答案,因此我将在此进行讨论。

@JamundFerguson说:

有没有没有Ruby的Sass编译方法?要看。

Sass是一种预处理语言。Ruby内置了一个编译器,任何人都可以用任何语言编写编译器。一个名为libsass的Sass编译器的C实现可以在允许导入C库的任何语言上使用。它是node-sass使用的库,它是Node.js内置的编译器,我还没有尝试过,也不知道它如何工作以及是否可以投入生产。移植Compass可能是一个时间问题(也许您最终会这样做?),因此我们可以拥有一个不依赖Ruby gem的编译器(当前,有一个node-compass模块确实依赖于该模块)Ruby宝石)。

其他语言

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

本机应用

我在CodeKit工作了一年,效果非常好,可以编译Sass / Compass,Less,Stylus和模板语言,例如Haml,Slim,Jade等。当资产自动更改时,您可以重建资产,并且可以在浏览器中立即看到更改。我唯一不喜欢的是,当转移到另一台计算机上,安装CodeKit,签出项目并尝试使用它时,我不得不重新配置项目设置,我必须记住这一点,这样我才能进行构建就像我在另一台计算机上制作的一样。我也开始与团队合作,他们还必须使用相同的设置来配置项目(有时没有相同的项目配置会导致难看的不一致),并且使用Ubuntu的团队成员也无法使用它。那'立即,并爱上了它。正如@Dave所提到的,这里有ScoutLiveReload,但还没有使用它们。

结论

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


1
对于libsass状态:solitr.com/blog/2014/01/state-of-libsass,node-sass和其他sass-library依赖于此
Ehtesh Choudhury 2014年

27

实际上,有一个库可以为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


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

11

只需稍作更新,您就可以使用SCSS / SASS文件并即时生成正确的文件,而无需使用名为Scout的程序来安装Ruby。

侦察兵有自己的独立红宝石环境,并且使用Java编码,因此在使用前请确保Java是最新的。林里在这里。

问候 :)


8
我宁愿在Java上使用ruby;)
basarat

实际上,目前我编写此Scout时使用的是Adobe Air。也许是旧版本使用Java?
iconoclast 2013年

3
仍然比空气更好的红宝石:)
x0x



2

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

编辑:其他问题建议如果已经安装了nodejs,node-sass也是一个不错的选择。

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.