运行Closure Compiler以获取警告消息

时间:2015-06-07 16:52:42

标签: c# asp.net google-closure-compiler

我在本地计算机上运行Closure Compiler来生成客户端文件。我还在http://closure-compiler.appspot.com/home使用在线关闭工具检查我的工作:我粘贴我的javascript代码,按下编译,如果有警告,编译器会向我显示实际线条和线条的警告数字。我想知道是否可以使用Closure Compiler的本地版本获得相同的输出。这是我用来编译文件并获取编译的javascript的代码,但这一次,我想要警告:

System.IO.File.WriteAllText(FileNameInput, TheJS);

string JavaArgument = "-jar ClosureCompiler/compiler.jar --js ClosureCompiler/initial" + FileNameSuffix + ".js --js_output_file ClosureCompiler/compiled" + FileNameSuffix + ".js --compilation_level ADVANCED_OPTIMIZATIONS --externs ExternalFiles/JqueryExtern.js";

System.Diagnostics.Process clientProcess = new System.Diagnostics.Process();

clientProcess.StartInfo.FileName = "java.exe";
clientProcess.StartInfo.Arguments = JavaArgument;
clientProcess.StartInfo.CreateNoWindow = true;
clientProcess.StartInfo.UseShellExecute = false;
clientProcess.StartInfo.WorkingDirectory = HttpRuntime.AppDomainAppPath;

clientProcess.Start();
clientProcess.WaitForExit();

string TheOutputScript = System.IO.File.ReadAllText(FileNameOutput);

我需要改变什么?

感谢。

2 个答案:

答案 0 :(得分:1)

编译器将警告和错误写入标准错误,该错误不会显示在输出文件中。

选项1 - 将标准错误重定向到文件

2> errorfile.txt添加到执行命令的末尾,以将标准错误重定向到文件。然后,您需要阅读该文件。

选项2 - 读取过程的标准错误属性

这应该简单如下:

clientProcess.StandardError

答案 1 :(得分:0)

乍得的答案很棒,因为我指的是代码。对于那些需要实际代码的人来说,这就是我所拥有的:

clientProcess.StartInfo.FileName = "java.exe";
clientProcess.StartInfo.Arguments = JavaArgument;
clientProcess.StartInfo.CreateNoWindow = true;
clientProcess.StartInfo.UseShellExecute = false;
clientProcess.StartInfo.WorkingDirectory = HttpRuntime.AppDomainAppPath;
clientProcess.StartInfo.RedirectStandardError = true; //add this line

clientProcess.Start();
string CompilerErrors = clientProcess.StandardError.ReadToEnd(); //add this line
clientProcess.WaitForExit();

return System.IO.File.ReadAllText(FileNameOutput); //add breakpoint here

现在你所要做的就是在最后添加一个断点并观察变量CompilerErrors。