这个线程(问题捕获错误输出)让你领略我正在努力解决的问题.我正在尝试从MSBuild运行grunt,并且Visual Studio输出窗口中不显示grunt错误.我在Visual Studio Express 2012 for Web中有一个.NET项目.我已使用IMPORT标记将外部项目导入到项目构建文件中,并且在导入的项目中,我有一个尝试运行grunt的Exec任务.我显然希望在Visual Studio输出窗口中看到grunt输出的错误消息,而不会有太多的麻烦.我找到了一个非常简单的解决方法,至少将输出发送到文本文件.
grunt.cmd > grunt-output.txt
Run Code Online (Sandbox Code Playgroud)
此输出文件位于我的.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.
Run Code Online (Sandbox Code Playgroud)
当我从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
Run Code Online (Sandbox Code Playgroud)
有没有人认识到所有这些方括号和数字正在做什么,谁能想到命令行开关或grunt开关或node.js开关,它们会解释它们并将它们变成格式化?看起来不像某种编码,它们看起来更像标签,向命令行环境建议如何格式化消息.请不要建议运行某种正则表达式替换功能.我想要快速简单的东西,否则它会变得比它的价值更麻烦.
更新:此链接输出被切断如果管道输入另一个应用程序指向10个月后节点中更上游的问题.虽然这已经整理好了,但至少可以获得更易读的输出文件.
管道重定向Grunt输出中的这个线程完全解决了这个问题并提供了一个快速的解决方法,同时我们等待整个问题得到解决.它们是转义代码,用于为输出着色,解决方法是使用--no-color选项删除着色.
当我从MSBuild运行此命令时
grunt.cmd --no-color > grunt-output.txt
Run Code Online (Sandbox Code Playgroud)
我得到格式良好的输出,其内容与命令行完全相同:
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.
Run Code Online (Sandbox Code Playgroud)
我可以没有颜色生活.如果将它发送到输出窗口会很好,因为MSBuild会在构建过程中抛出看起来像是错误的东西,实际上只是JSHint巧妙地伤害了我对JavaScript的感觉.
| 归档时间: |
|
| 查看次数: |
6169 次 |
| 最近记录: |