10

该线程(问题捕获错误输出)让您了解我正在努力解决的问题。我正在尝试从 MSBuild 运行 grunt,并且 grunt 错误未显示在 Visual Studio 输出窗口中。我在 Visual Studio Express 2012 for Web 中有一个 .NET 项目。我已经使用 IMPORT 标记将一个外部项目导入到项目构建文件中,并且在导入的项目中我有一个 Exec 任务试图运行 grunt。我显然希望在我的 Visual Studio 输出窗口中看到 grunt 输出的错误消息,而不必大惊小怪。我找到了一个非常简单的解决方法,至少将输出发送到文本文件。

grunt.cmd > grunt-output.txt

此输出文件位于我的 .NET 项目文件夹中的某个位置,因此快速刷新并双击允许我打开输出文件并在 Visual Studio 中看到稍微乱码的 grunt 输出版本。

例如,我在 grunt.js 文件上运行 lint 任务,其中包含 JSHint 会反对的内容。我故意没有在后面加上分号var hello,所以你会收到错误消息Missing semicolon

从命令行我得到一个格式很好的错误消息。

Running "lint:files" (lint) task
Linting grunt.js...ERROR
[L2:C10] Missing semicolon.
var hello

<WARN> Task "lint:files" failed. Use --force to continue. </WARN>

Aborted due to warnings.

当我从 Visual Studio 运行它时,输出文件包含这种混乱的格式:

    [4mRunning "lint:files" (lint) task[24m
     Linting grunt.js...[31mERROR[39m
     [31m[[39m[33mL2[39m[31m:[39m[33mC10[39m[31m][39m [33mMissing semicolon.[39m
     var hello[31m[7m [27m[39m

     [31m<[39m[33mWARN[39m[31m>[39m [33mTask "lint:files" failed. Use --force to continue.     [39m [31m</[39m[33mWARN[39m[31m>[39m

     [31mAborted due to warnings.[39m

有谁知道所有这些方括号和数字在做什么,任何人都可以想到一个命令行开关或 grunt 开关或 node.js 开关来解释它们并将它们转换为格式吗?看起来不像某种编码,它们看起来更像是向命令行环境建议如何格式化消息的标签。请不要建议运行某种正则表达式替换功能。我想要一些快速简单的东西,否则它会变得比它的价值更麻烦。

更新:如果通过管道传输到另一个应用程序,则此链接输出将被切断,该链接指向 10 个月前节点上游的问题。虽然这已经解决了,但至少获得一个更具可读性的输出文件会很好。

4

2 回答 2

8

grunt 留言板上的这个线程Pipe-redirecting Grunt's output is broken完美地解决了这个问题,并在我们等待整个问题得到修复时提供了一个快速的解决方法。它们是为输出着色的转义码,解决方法是使用 --no-color 选项去除着色。

当我从 MSBuild 运行此命令时

grunt.cmd --no-color > grunt-output.txt

我得到格式良好的输出,其内容与命令行完全相同:

Running "lint:files" (lint) task
Linting grunt.js...ERROR
[L2:C10] Missing semicolon.
var hello 

<WARN> Task "lint:files" failed. Use --force to continue. </WARN>

Aborted due to warnings.

没有颜色我也能活。但是,如果可以将其发送到输出窗口会很好,因为 MSBuild 在构建过程中抛出了看似错误的东西,而实际上它只是 JSHint 巧妙地伤害了我对 JavaScript 的感觉。

于 2013-01-27T14:59:18.057 回答
0

回应“我显然希望在我的 Visual Studio 输出窗口中看到 grunt 输出的错误消息,而不用大惊小怪。”

我会看看 VsCommandBuddy ...它可以帮助您将 grunt(以及与此相关的任何其他命令)直接集成到 Visual Studio 中。每个解决方案/项目都配置命令,在撰写本文时,可通过菜单、工具栏、快捷方式和快速启动...

http://visualstudiogallery.msdn.microsoft.com/f5da988e-2ec1-4061-a569-46d09733c668

这是一个我自己痒痒的项目。它帮助我完成瘦身。在我在 Visual Studio 中打开的每个解决方案中,我都会简单地看到我为该解决方案/或项目放置的所有外部命令。

输出根据需要通过输出窗口。grunt 的无颜色选项消除了所有噪音。

希望能帮助到你!!

于 2014-07-15T09:55:46.300 回答