Currenly我试图在办理登机手续时执行ESLINT以检查常见问题。
为此,我创建了CheckInPolicy类,在Evaluate
方法中,对于js文件,我执行以下代码:
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", "/c " + string.Format(@"ESLINT ""{0}""", checkedPendingChange.LocalItem))
{
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
CreateNoWindow = true
};
StringBuilder sb = new StringBuilder();
Process process = Process.Start(startInfo);
process.OutputDataReceived += (sender, e) => sb.AppendLine(e.Data);
process.BeginOutputReadLine();
process.Start();
process.WaitForExit();
// We may not have received all the events yet!
Thread.Sleep(2500);
if (process.ExitCode != 0)
stringCollection.Add(string.Format(@"ESLINT check failed for {0}{1}{1}{2}", checkedPendingChange.LocalItem, Environment.NewLine, sb.ToString()));
然后我将这个程序集及其注册包装在VSIX中并将其安装在我的机器中。
可悲的是,当我签入js文件时,命令会触发,但退出代码始终为 1 ......
ESLINT及其所有依赖项全局安装,如果我在控制台应用程序中运行相同的代码工作正常(退出代码 0 或 1 相应), Visual Studio 2015是runnig ad Admin。
启动ESLINT的正确方法是什么?或者我必须检查Edge.js?可以错过%PATH%相关问题吗?