使用NSTask时LESS输出奇怪的输出

时间:2014-05-18 16:44:18

标签: cocoa less nstask

我正在尝试将LESS与NSTask一起使用。它基本上有效,但输出有时很奇怪。例如:

[31mParseError: Unrecognised input[39m[31m in [39m/Volumes/Macintosh HD/Users/x/Sites/y/css/style.less[90m on line 4, column 2:[39m
[90m3   background-color: purple;[39m
4   [7m[31m[1md[22md[39m[27m
[90m5 }[39m[0m[0m

[31m等来自哪里?

我的相关代码是:

NSTask *task = [[NSTask alloc] init];
task.launchPath = [bundle.resourcePath stringByAppendingPathComponent:@"less.js/bin/lessc"];
task.arguments = @[path,cssPath];

NSPipe *outputPipe = [NSPipe pipe];
[task setStandardError:outputPipe];

[task setTerminationHandler:^(NSTask *task) {
    NSString *s = [[NSString alloc] initWithData: [[outputPipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding];
    if(s.length > 0){
        [[NSAlert alertWithMessageText:@"LESS Compilation" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@",s] runModal];
    }
}];
[task launch];

编辑:我认为现在这与命令行的着色有关,不是吗?所以我的问题是:避免它们的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

这些是ANSI颜色代码。您可能希望查看是否存在不返回彩色编码文本的任务参数。