我已经将recess安装为Ruby gem (尽管如果我将其作为npm包来安装,这个问题也同样适用),并且在Bash脚本中结合watchr使用它,以便在文件发生更改时处理较少的文件。只要LESS文件有错误的语法,产生的CSS输出文件就是空的,没有错误跟踪(不像SASS,它将错误输出放在文件中)。我知道在Ruby语言中使用recess gem时,如果有一个problem...where,它会产生一个错误对象,如果我在命令行中使用它,这个错误输出会出现吗?
发布于 2014-07-09 03:03:18
正如在“理解隐含”中一样,在无效的Less代码上不会抛出任何错误。只有当您尝试编译一个不存在的文件时,才会向stdout写入错误。尝试以下操作:
>> npm install recess
>> ./node_modules/recess/bin/recess --compile test.less当test.less不存在时,前面的命令将导致:
Error reading file: test.less现在创建一个有效的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 因为这个答案来得有点晚,所以你也必须意识到,当前版本的recess使用的版本比1.3少,而最新版本的less现在是1.7.3。
如果你能够安装带有npm的recess,你也应该能够安装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 您可以通过将2>errors.log代码附加到命令来将stderr重定向到文件。例如,现在您可以运行以下命令:
>> ./node_modules/less/bin/lessc invalid.less > style.css 2>errors.log前面的命令将有效的CSS写入invalid.less,并将错误写入errors.log
https://stackoverflow.com/questions/12166509
复制相似问题