2014-02-27 25 views
1

在我安裝Sass寶石寶石之後,系統中添加了三個新命令:sassscsssass-convert。所以,我的問題是sassscss命令之間的區別是,它們是否共享相同的功能?因爲他們都可以打開.sass文件或文件.scss到.css文件:終端中的sass和scss命令有何區別

$ sass style.sass style.css
$ sass style.scss style.css
$ scss style.sass style.css
$ scss style.scss style.css

這一切4種指令可以正確運行。 PS:我不問SCSS語法和Sass語法之間的區別。

回答

0

使用你的命令的--help標誌就會給你答案:

青菜變頻:

$ sass-convert --help 
Usage: sass-convert [options] [INPUT] [OUTPUT] 

Description: 
    Converts between CSS, Sass, and SCSS files. 
    E.g. converts from SCSS to Sass, 
    or converts from CSS to SCSS (adding appropriate nesting). 

SCSS:

$ scss --help 
Usage: scss [options] [INPUT] [OUTPUT] 

Description: 
    Converts SCSS or Sass files to CSS. 

青菜:

$ sass --help 
Usage: sass [options] [INPUT] [OUTPUT] 

Description: 
    Converts SCSS or Sass files to CSS. 
+0

是的,我之前做過同樣的事情。我只是想知道這是否意味着'sass'命令和'scss'命令在引擎蓋下是一樣的? – houhr

+0

@houhr由於SCSS是CSS3的超集,而SASS不是。我相信這些命令在引擎蓋下不一樣,即使它們應該輸出相同的CSS。 – sargas

-1

Sass是一個具有語法改進功能的CSS預處理器。高級語法中的樣式表由程序處理,並轉換爲常規的CSS樣式表。但是,它們本身不會擴展CSS標準。

這樣做的主要原因是添加了CSS痛苦地缺乏的功能(如變量)。

重新SCSS和薩斯之間的差別,在Sass home page文本應該回答的問題是:

Sass is an extension of CSS3, adding nested rules, variables, mixins, selector inheritance, and more. It’s translated to well-formatted, standard CSS using the command line tool or a web-framework plugin.

Sass has two syntaxes. The new main syntax (as of Sass 3) is known as 「SCSS」 (for 「Sassy CSS」), and is a superset of CSS3’s syntax. This means that every valid CSS3 stylesheet is valid SCSS as well. SCSS files use the extension .scss.

The second, older syntax is known as the indented syntax (or just 「Sass」). Inspired by Haml’s terseness, it’s intended for people who prefer conciseness over similarity to CSS. Instead of brackets and semicolons, it uses the indentation of lines to specify blocks. Although no longer the primary syntax, the indented syntax will continue to be supported. Files in the indented syntax use the extension .sass.

然而,這一切只能與薩斯預編譯器最終創建CSS。它不是CSS標準本身的擴展。

+0

謝謝你的回答,但我沒有問SCSS語法和Sass語法之間的區別,我問的是終端中'sass'命令和'scss'命令之間的區別。 – houhr

0

Th e命令scss相當於sass --scss,其中命令sass相當於scss --sass。這兩個命令(也稱爲兩個選項)對於syntax selection使用不同的默認語法

首先,scsssass會根據您的文件擴展名解析您的語法。 (如果你的文件擴展名是sass,那麼scss會使用sass語法分析器,反之亦然。)在這種情況下,它們的表現會相同,這就是爲什麼你得到正確的結果。

但是,如果您的文件沒有文件擴展名。該命令將使用默認語法解析語法。例如,下面的代碼會給你正確的結果,因爲它使用了sass語法分析器。

$ scss style.sass style.css 

下面的代碼可能會給你一個解析錯誤,因爲它使用scss語法分析器。

$ scss style_sass.txt style.css