我已将凹槽安装为 Ruby gem(尽管如果我将其作为 npm 包执行,则此问题也适用),并且在带有 watchr 的 Bash 脚本中使用它来在更改 LESS 文件时对其进行处理。每当 LESS 文件语法错误时,生成的 CSS 输出文件都是空的,没有错误跟踪(与 SASS 不同,它将错误输出放在文件中)。我知道在Ruby中使用recess gem时,如果出现问题,它会产生一个错误对象......如果我从命令行使用它,该错误输出会去哪里?
问问题
228 次
1 回答
1
据了解,recess 不会对无效的 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
因为这个答案来晚了一点,你还必须意识到当前版本的凹槽使用 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
您可以通过将代码stderr
附加到命令来重定向到文件。2>errors.log
现在您可以例如运行以下命令:
>> ./node_modules/less/bin/lessc invalid.less > style.css 2>errors.log
前面的命令将有效的 CSS 写入invalid.less
并错误写入errors.log
于 2014-07-08T19:03:17.910 回答