I believe this should be easy to reproduce. Clone ghost, npm install, grunt init, grunt prod
Create project from the existing code, Let is sit for a minute or so. Watch the crash. On at least one PC the extension is simply unusable, it crashes VS all the time. It also hogs a ton of memory, but that's a separate problem.
Are there known workarounds?
=================
Microsoft Visual Studio Professional 2013
Version 12.0.30723.00 Update 3
Node.js Tools 1.0.20721.02
Adds support for developing and debugging Node.js apps in Visual Studio
Node.js Tools - Profiling 1.0.20721.02
Profiling support for Node.js projects.
================
Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
at Microsoft.NodejsTools.Analysis.GlobalBuilder.ArrayForEach(Microsoft.NodejsTools.Analysis.Values.FunctionValue, Microsoft.NodejsTools.Parsing.Node, Microsoft.NodejsTools.Analysis.AnalysisUnit, Microsoft.NodejsTools.Analysis.IAnalysisSet, Microsoft.NodejsTools.Analysis.IAnalysisSet[])
at Microsoft.NodejsTools.Analysis.Values.SpecializedFunctionValue.Call(Microsoft.NodejsTools.Parsing.Node, Microsoft.NodejsTools.Analysis.AnalysisUnit, Microsoft.NodejsTools.Analysis.IAnalysisSet, Microsoft.NodejsTools.Analysis.IAnalysisSet[])
at Microsoft.NodejsTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateCall(Microsoft.NodejsTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.NodejsTools.Parsing.Node)
at Microsoft.NodejsTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.NodejsTools.Parsing.Node)
at Microsoft.NodejsTools.Analysis.Analyzer.DDG.Walk(Microsoft.NodejsTools.Parsing.ReturnNode)
at Microsoft.NodejsTools.Parsing.ReturnNode.Walk(Microsoft.NodejsTools.Parsing.AstVisitor)
at Microsoft.NodejsTools.Analysis.Analyzer.DDG.Walk(Microsoft.NodejsTools.Parsing.Block)
at Microsoft.NodejsTools.Parsing.Block.Walk(Microsoft.NodejsTools.Parsing.AstVisitor)
at Microsoft.NodejsTools.Analysis.Analyzer.FunctionAnalysisUnit.AnalyzeWorker(Microsoft.NodejsTools.Analysis.Analyzer.DDG, System.Threading.CancellationToken)
at Microsoft.NodejsTools.Analysis.Analyzer.DDG.Analyze(Microsoft.NodejsTools.Analysis.Deque`1<Microsoft.NodejsTools.Analysis.AnalysisUnit>, System.Threading.CancellationToken)
at Microsoft.NodejsTools.Analysis.JsAnalyzer.AnalyzeQueuedEntries(System.Threading.CancellationToken)
at Microsoft.NodejsTools.Intellisense.AnalysisQueue+GroupAnalysis.Analyze(System.Threading.CancellationToken)
at Microsoft.NodejsTools.Intellisense.AnalysisQueue.Worker(System.Object)
at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart(System.Object)
=======================
Create project from the existing code, Let is sit for a minute or so. Watch the crash. On at least one PC the extension is simply unusable, it crashes VS all the time. It also hogs a ton of memory, but that's a separate problem.
Are there known workarounds?
=================
Microsoft Visual Studio Professional 2013
Version 12.0.30723.00 Update 3
Node.js Tools 1.0.20721.02
Adds support for developing and debugging Node.js apps in Visual Studio
Node.js Tools - Profiling 1.0.20721.02
Profiling support for Node.js projects.
================
Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
at Microsoft.NodejsTools.Analysis.GlobalBuilder.ArrayForEach(Microsoft.NodejsTools.Analysis.Values.FunctionValue, Microsoft.NodejsTools.Parsing.Node, Microsoft.NodejsTools.Analysis.AnalysisUnit, Microsoft.NodejsTools.Analysis.IAnalysisSet, Microsoft.NodejsTools.Analysis.IAnalysisSet[])
at Microsoft.NodejsTools.Analysis.Values.SpecializedFunctionValue.Call(Microsoft.NodejsTools.Parsing.Node, Microsoft.NodejsTools.Analysis.AnalysisUnit, Microsoft.NodejsTools.Analysis.IAnalysisSet, Microsoft.NodejsTools.Analysis.IAnalysisSet[])
at Microsoft.NodejsTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateCall(Microsoft.NodejsTools.Analysis.Analyzer.ExpressionEvaluator, Microsoft.NodejsTools.Parsing.Node)
at Microsoft.NodejsTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Microsoft.NodejsTools.Parsing.Node)
at Microsoft.NodejsTools.Analysis.Analyzer.DDG.Walk(Microsoft.NodejsTools.Parsing.ReturnNode)
at Microsoft.NodejsTools.Parsing.ReturnNode.Walk(Microsoft.NodejsTools.Parsing.AstVisitor)
at Microsoft.NodejsTools.Analysis.Analyzer.DDG.Walk(Microsoft.NodejsTools.Parsing.Block)
at Microsoft.NodejsTools.Parsing.Block.Walk(Microsoft.NodejsTools.Parsing.AstVisitor)
at Microsoft.NodejsTools.Analysis.Analyzer.FunctionAnalysisUnit.AnalyzeWorker(Microsoft.NodejsTools.Analysis.Analyzer.DDG, System.Threading.CancellationToken)
at Microsoft.NodejsTools.Analysis.Analyzer.DDG.Analyze(Microsoft.NodejsTools.Analysis.Deque`1<Microsoft.NodejsTools.Analysis.AnalysisUnit>, System.Threading.CancellationToken)
at Microsoft.NodejsTools.Analysis.JsAnalyzer.AnalyzeQueuedEntries(System.Threading.CancellationToken)
at Microsoft.NodejsTools.Intellisense.AnalysisQueue+GroupAnalysis.Analyze(System.Threading.CancellationToken)
at Microsoft.NodejsTools.Intellisense.AnalysisQueue.Worker(System.Object)
at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart(System.Object)
=======================