我可以将 CSS 转换为 SCSS,同时也可以将 SCSS 转换为 CSS 吗?

8

我计划在一个大型项目中使用sass/compass。是否有可能让一些团队成员使用简单的css,而其他人仍然可以编写scss?

我想知道的确切方式是,compass/sass如何监听scss并在同一时刻将其转换为css,它是否也可以监听css文件并将scss文件中的任何更改转换回来?

5个回答

21
这是可能的,但不是理想的。你最好打开终端并运行。
sass-convert --from css --to scss

在存放样式的目录中然后从那里开始重构。这很麻烦,也不是真正的“转换”。它尝试正确嵌套,并且通常能够做到,但如果您不重构代码并使用诸如mix-ins、extends和variables之类的东西,那么使用SASS的目的就有点失去了意义。
要自动化此过程,您可能需要使用Guard等工具来监视css文件的更改。您需要确保您没有同时监视主样式(即sass编译到的样式),因为这将使您陷入无休止的转换循环中!

对我来说,这个方法似乎需要持续几个小时,当我使用ctrl+C中断时,它会提示我已经打断了程序。只有@FDisk指定目录的答案对我有效。 - leymannx

15

使用命令安装 Compass

gem install compass

运行此命令。它将扫描指定目录中的CSS文件并将其转换为SCSS文件。

sass-convert -R my_css_dir --from css --to scss

然后执行这个命令

compass watch

这将会监视scss文件的变化并自动将其转换为css文件。


3
这正是我所需要的。'sass-convert' 跟随 'gem install compass' 一起安装。这是在本地快速执行的最简单的方法。 - program247365
为什么你不直接执行sass --watch命令呢? - Mikey
@Mikey Sass不是指南针。 - FDisk

6
我认为不行,至少不是很容易地实现。虽然SCSS完全兼容常规CSS,并且可以编译成CSS格式,但反过来并不行,因此源文件应该是CSS或SCSS格式。
不过这还要看你的项目需求。比如说有两个团队成员正在完全不同的部分上工作。他们可以使用独立的文件,并选择在SCSS或CSS中工作。然后将他们的文件包含在主SCSS文件中,或通过构建脚本合并在一起,甚至在生产环境中保持独立。这并不会有任何问题。
不过我始终更喜欢所有团队成员以类似的方式工作,这样当出现问题时,他们可以轻松地相互协助。

1
如果您正在进行一个全CSS项目,并开始使用SCSS(SASS)文件,则@FDisk在下面的答案中是快速将所有CSS文件转换为SCSS文件的方法:https://dev59.com/h2PVa4cB1Zd3GeqP-fFj#13759406 - program247365

3
你可以查看以下提供此类服务的网站:

https://css2sass.herokuapp.com

 ______________| CSS | SASS | SCSS |
| CSS          |  -  |   X  |   X  |
| Minified CSS |  X  |   X  |   X  |
| SASS         |  X  |   -  |   X  |
| SCSS         |  X  |   X  |   -  |

2
我写了一个工具来实现这个 :) http://sebastianpontow.de/css2compass 但是这只是一个入门工具,你应该始终检查输出并重写关键部分 - 输出可能不是编写scss代码的最佳方式。

您是否使用sass-convert?这可以通过在终端运行某些命令来实现吗?我需要提取变量,就像您在网站上所做的那样;尝试了sass-convert但是没有成功。 - kamilkp
不好意思,我写了一个解析CSS的脚本。从来没有尝试过命令行的Sass工具... - pontoffeltier
@pontoffeltier 有没有工具可以帮助你将CSS代码转换成Sass/Compass代码? - lzl124631x
这正是我的工具所做的 :) - pontoffeltier
@pontoffeltier 很棒的工具。 - nirmal

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