什么是 Visual Studio TypeScript 虚拟项目?如果我在外部编译,我怎样才能摆脱它?

Posted

技术标签:

【中文标题】什么是 Visual Studio TypeScript 虚拟项目?如果我在外部编译,我怎样才能摆脱它?【英文标题】:What is a Visual Studio TypeScript Virtual Project? And how can I get it out of my way if I'm compiling externally? 【发布时间】:2017-07-12 21:49:52 【问题描述】:

这个问题的第一部分是最重要的。关于 Visual Studio 和 TypeScript 以及“TypeScript 虚拟项目”有很多堆栈问题,但我没有发现任何东西可以解释 TypeScript 虚拟项目是什么,它们为我做了什么,以及当它们“挡道”时该怎么做。我从未从 Microsoft 找到任何有关此问题的官方文档,因此如果该团队或与该团队关系密切的人能够做出回应,那就太好了。 “TypeScript 虚拟项目”在 VS 2017 中仍然存在,我看到与 VS 2015 中相同的问题。

问题的第二部分...我正在尝试将 Visual Studio 2015 与 Angular 2 和 TypeScript 应用程序一起使用,但我正在使用 Webpack 作为外部 TS 编译器和构建。在大多数情况下它可以工作,但是即使我可以成功编译,TypeScript 虚拟项目也会时不时地在输出窗口和代码中给出错误。他们中的大多数都无法找到 @angular/core 导入等。令人困惑的是,TS 虚拟项目有时也会捕获真正的错误。那么我需要虚拟项目来进行智能感知和编译检查吗?

我目前的状态是我正在进行 2 次编译以试图让 TypeScript 虚拟项目保持快乐,即使有时它仍然会抱怨。第一个构建使用 tsc 作为 VS 构建的一部分,然后我使用 SourceMaps 进行正常的 Webpack 构建以进行调试。这似乎在 90% 的情况下都有效,但另外 10% 的 TS 虚拟项目遇到阻碍时非常令人沮丧,而且由于它们仍在 Visual Studio 2017 中,因此了解发生了什么很重要。

最终目标是能够将 Visual Studio 用作我的编辑器和调试器(具有所有出色的功能),并进行智能感知和编译检查,但使用 Webpack 等外部 TypeScript 构建进行构建/捆绑等。

谢谢。

【问题讨论】:

【参考方案1】:

添加到 tsconfig.json 下一个选项对我有帮助:

"compilerOptions": 
   "watch": true,
    ...

别忘了添加

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

到任何&lt;PropertyGroup&gt;您的项目文件。

【讨论】:

以上是关于什么是 Visual Studio TypeScript 虚拟项目?如果我在外部编译,我怎样才能摆脱它?的主要内容,如果未能解决你的问题,请参考以下文章

关于visual studio网站发布及IIS的问题~急急急!!!

visual studio怎么添加对dll的引用

visual studio 2017没法安装,总在visual studio installer界面闪推

visual studio 2010 工程太大

比较 Visual Studio 2015 和 Blend for Visual Studio [关闭]

visual studio解决方案是什么?