2012-08-28 10 views
2

我已經安裝了作爲Ruby gem的休會期(雖然這個問題也適用,如果我將它作爲npm包的話),並且當它們被更改時,我們將它用在Bash腳本中與watchr一起處理LESS文件。每當LESS文件的語法錯誤時,生成的CSS輸出文件只是空的,沒有錯誤跟蹤(與將錯誤輸出放入文件中的SASS不同)。我知道,當在Ruby中使用凹進gem時,如果出現問題,它會產生一個錯誤對象......如果我從命令行使用它,那麼錯誤輸出會轉到哪裏?從命令行使用來編譯LESS文件時,從凹處輸出的錯誤在哪裏?

回答

1

正如理解的那樣,休息不會在無效的代碼中丟失任何錯誤。只有當您嘗試編譯不存在的文件時,纔會寫入stdout的錯誤。請嘗試以下操作:

>> npm install recess 
>> ./node_modules/recess/bin/recess --compile test.less 

當test.less不存在上述命令將導致:

Error reading file: test.less 

現在創建一個有效不太文件:

echo "p{ &.class{color:red}}" > valid.less 

的編譯輸出以下命令也寫入stdout

>> ./node_modules/recess/bin/recess --compile valid.less 
p.class { 
    color: #ff0000; 
} 

做同樣的一些無效的輸出不產生任何輸出:

>> echo "p{ &.class{color" > invalid.less 
>> ./node_modules/recess/bin/recess --compile invalid.less 

因爲這個答案來得有點晚了,你也必須認識到,凹槽的當前版本使用更少的V1.3而最新Less的版本現在是1.7.3。

我可以用npm安裝休息室,你應該也可以安裝生成錯誤的Less命令行編譯器。

>> npm install less 
>> echo "p{ &.class{color" > invalid.less 
>> ./node_modules/less/bin/lessc invalid.less 

上述命令寫以下消息stderr

ParseError: missing closing `}` in invalid.less on line 1, column 11: 
1 p{ &.class{color 
2 

您可以重定向stderr2>errors.log碼附加到命令到文件。現在,您可以爲實例中運行以下命令:

>> ./node_modules/less/bin/lessc invalid.less > style.css 2>errors.log 

上述命令將有效的CSS invalid.less和錯誤errors.log