首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从命令行编译较少的文件时,recess的错误输出会去哪里?

当从命令行编译较少的文件时,recess的错误输出会去哪里?
EN

Stack Overflow用户
提问于 2012-08-29 03:49:17
回答 1查看 227关注 0票数 2

我已经将recess安装为Ruby gem (尽管如果我将其作为npm包来安装,这个问题也同样适用),并且在Bash脚本中结合watchr使用它,以便在文件发生更改时处理较少的文件。只要LESS文件有错误的语法,产生的CSS输出文件就是空的,没有错误跟踪(不像SASS,它将错误输出放在文件中)。我知道在Ruby语言中使用recess gem时,如果有一个problem...where,它会产生一个错误对象,如果我在命令行中使用它,这个错误输出会出现吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 03:03:18

正如在“理解隐含”中一样,在无效的Less代码上不会抛出任何错误。只有当您尝试编译一个不存在的文件时,才会向stdout写入错误。尝试以下操作:

代码语言:javascript
复制
>> npm install recess
>>  ./node_modules/recess/bin/recess --compile test.less

当test.less不存在时,前面的命令将导致:

代码语言:javascript
复制
Error reading file: test.less

现在创建一个有效的less文件:

代码语言:javascript
复制
echo "p{ &.class{color:red}}" > valid.less

以下命令的编译输出也会写入stdout

代码语言:javascript
复制
>> ./node_modules/recess/bin/recess --compile valid.less 
p.class {
  color: #ff0000;
}

对一些无效输出执行相同的操作不会生成任何输出:

代码语言:javascript
复制
 >> echo "p{ &.class{color" > invalid.less
 >> ./node_modules/recess/bin/recess --compile invalid.less 

因为这个答案来得有点晚,所以你也必须意识到,当前版本的recess使用的版本比1.3少,而最新版本的less现在是1.7.3。

如果你能够安装带有npm的recess,你也应该能够安装Less命令行编译器,它会像预期的那样产生错误。

代码语言:javascript
复制
 >> npm install less
 >> echo "p{ &.class{color" > invalid.less
 >> ./node_modules/less/bin/lessc invalid.less 

前面的命令将以下消息写入stderr

代码语言:javascript
复制
ParseError: missing closing `}` in invalid.less on line 1, column 11:
1 p{ &.class{color
2 

您可以通过将2>errors.log代码附加到命令来将stderr重定向到文件。例如,现在您可以运行以下命令:

代码语言:javascript
复制
>> ./node_modules/less/bin/lessc invalid.less > style.css 2>errors.log

前面的命令将有效的CSS写入invalid.less,并将错误写入errors.log

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12166509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档