gpt4 book ai didi

ruby - 从命令行编译 LESS 文件时,recess 的错误输出到哪里去了?

转载 作者:太空宇宙 更新时间:2023-11-03 16:33:15 26 4
gpt4 key购买 nike

我已经将 recess 作为 Ruby gem 安装(尽管如果我将它作为 npm 包安装,这个问题也适用),并且在 Bash 脚本中使用它和 watchr 来处理 LESS 文件,当它们被更改时。每当 LESS 文件的语法错误时,生成的 CSS 输出文件只是空的,没有错误跟踪(不像 SASS,它将错误输出放在文件中)。我知道在 Ruby 中使用 recess gem 时,如果出现问题,它会产生一个错误对象...如果我从命令行使用它,错误输出会去哪里?

最佳答案

据了解,休会不会对无效的 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 使用 less v1.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

关于ruby - 从命令行编译 LESS 文件时,recess 的错误输出到哪里去了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com