这个帖子(Problem capturing error output)让你领略我正在努力解决的问题。我正在尝试从MSBuild运行grunt,并且Visual Studio输出窗口中不显示grunt错误。我在Visual Studio Express 2012 for Web中有一个.NET项目。我已使用IMPORT标记将外部项目导入到项目构建文件中,并且在导入的项目中,我有一个尝试运行grunt的Exec任务。我显然希望在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开关,它们会解释它们并将它们变成格式化吗?看起来不像某种编码,它们看起来更像标签,向命令行环境建议如何格式化消息。请不要建议运行某种正则表达式替换功能。我想要快速简单的东西,否则它会变得比它的价值更麻烦。
更新:此链接Output gets cut off if piped into another application指向10个月后节点中更上游的问题。虽然这已经整理好了,但至少可以获得更易读的输出文件。
答案 0 :(得分: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的感觉。
答案 1 :(得分:0)
回应“我显然希望在我的Visual Studio输出窗口中看到错误消息,而不会有太大的麻烦。”
我看看VsCommandBuddy ......它可以帮助你在visual studio中集成你的grunt(以及任何其他命令)。每个解决方案/项目都配置了命令,在撰写本文时,可通过菜单,工具栏,快捷方式和快速启动来获取...
http://visualstudiogallery.msdn.microsoft.com/f5da988e-2ec1-4061-a569-46d09733c668
这是一个划伤我自己的痒项目。它帮助我完成了这些工作。在我在visual studio中打开的每个解决方案中,我只是简单地介绍了我为该解决方案/或项目提供的外部命令。
根据需要输出到输出窗口。 grunt的无颜色选项可以消除所有噪音。
希望它有所帮助!!