指南针(Compass)和Sass已经过时了吗?

19

我正在学习Code School 的"Sass Foundation"课程。目前我正在学习一项教授介绍的Compass框架,但是当我安装它后,发现它生成的代码中不包含 -ms- 和 -o- 前缀。

因此,我想向专业人士寻求一些技巧和信息,而这些信息在Stack和互联网上都无法找到。

  1. Compass已经死了吗?如果是,那么我应该使用什么替代品?(以确保它会添加-ms-、-o-等前缀)

  2. Sass已经死了吗?

  3. 我做了一些 research,人们说我不应该使用.sass,而应该使用.scss,但另一方面,如果我使用.scss,我将无法使用缩进语法。我应该避免使用缩进语法吗?如果是,请指明原因。


可能只需要设置一个标志来输出-ms-和-o-。请注意,我对Compass没有任何经验。 - Scimonster
3个回答

53

由于没有一个答案是100%准确的,我将提供自己的答案。

  1. Compass已经死了吗? 是的,显然是这样。 根据他们的GitHub页面

    Compass不再被积极维护。

    Compass似乎正在消亡,因为它是用Ruby编写的,而现在有更快的C/C++编写的Sass转译器,主要是LibSass

    现在应该使用什么?基于这个GitHub问题对话,我建议切换到Bourbon作为基本的实用mixin集。

  2. Sass现在死了吗?不,绝对没有。 现代的Sass转译器,包括LibSass,完全支持Sass规范,并且工作得很好。

  3. 您应该避免使用Sass语法吗?不需要。 在我看来,Sass语法更清晰,更易读,而且肯定更容易输入。

    您可以混合使用Sass和SCSS语法。因此,您可以将Bourbon SCSS语法导入Sass语法文档中,并无问题地使用mixin。

    总之,使用使您更快乐的语法。


“Compass 似乎正在消亡,因为它是用 Ruby 写的……我建议转换到 Bourbon,但那也是 Ruby。” - Sz.
1
True。Bourbon有很多Ruby代码,但我的理解是它生成纯Sass mixin,因此您可以运行基于C ++的Sass转换器,例如libsass。不幸的是,Bourbon也正在消失,并被基于node的解决方案(如Autoprefixer)所取代。 - Nostalg.io
如果您使用类似create-react-app的工具,它将默认支持Sass和SCSS,并使用Autoprefixer。 - Nostalg.io
1
libsass已不再维护!!! - Kukeltje
正确。这篇文章已经过时了。LibSass已被node-sass取代。 - Nostalg.io

5
指南针并没有死,它所做的事情已经做得很好了,但现在在大多数人的工作流程中被替代了。之后人们开始使用CodeKit,现在他们通常使用任务运行器和构建工具,如grunt、gulp、brunch、broccoli等。
你需要的是预处理以及具有autoprefixer的东西。这可以是上述任何一种东西,通常可以通过一系列npm模块进行安装和配置。这完全取决于你正在工作的项目。我认为目前最流行的是gulp。(我使用Ember,所以Ember CLI会为我完成这项工作)
.sass只是另一种语法(我相信是最初的语法)。大多数开发人员使用.scss,我建议你坚持使用这种语法,因为它更像CSS,在分享项目时人们会感谢你。(尽管我更喜欢stylus)
编辑
思考...我认为"Sass基础"才是真正“已经过时”的,那门课程会给你带来更多麻烦而不是帮助。只需编写scss,并在需要时学习新的知识点。这只是带有一些有用功能,如变量和嵌套的CSS。

3
“Compass is not, dead” 应该是指 “Compass 现在已经死了”,对吧? - Sz.
我是说,我只是试图解密你引用的那段文本。没关系。 :) - Sz.

2
假设我理解你的问题,是的,我会转到使用SCSS而不是SASS。为什么?一般来说,SASS结合了Sass和SCSS。Sass本身是一种较旧的语法,主要处理缩进(而不是括号等),并且没有对CSS提供任何真正的补充。另一方面,SCSS旨在通过提供额外的功能,如变量、嵌套和其他功能,扩展CSS3。另一个好处是,从技术上讲,每个有效的CSS3样式表也是一个有效的SCSS样式表。
因此,总之,我肯定会考虑改用SCSS,因为你会发现这是业界许多框架和工具的标准,而且与Sass相比,它是一种较新的语法,提供了更多的功能,使作为开发人员的生活更加轻松。
如果您想了解更多信息,请查看他们的网站:http://sass-lang.com/ 因此,具体回答您的问题:
1. 不,它并没有死亡,只是更新以遵循行业标准。有许多替代方案可用。例如,流行的替代方案是Gulp。
2. Sass也没有死亡,然而大多数开发人员已经转向使用SCSS。
3. 我会选择SCSS,因为我已经描述了以上内容。

4
这里的信息不正确。SASS的缩进语法在功能上与SCSS语法是相等的 -您可以使用的功能没有任何区别。 - Ben Hull
1
这个答案完全是错误的。正如上面的评论所提到的,Sass(即缩进语法)和SCSS只是Sass(CSS预处理器)的两种不同语法风格,它们具有相同的功能和功能。 - aradalvand
Sass语法基本上可以实现你提到的变量和嵌套等功能。 - 40detectives

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