使用Visual Studio调试TypeScript代码

时间:2012-10-03 15:32:36

标签: visual-studio typescript

有没有办法在Visual Studio中调试TypeScript源代码(而不是调试生成的javascript)?

从TypeScript语言规范:

  

TypeScript可选择提供源映射,启用源级调试。

因此我希望能够在ts代码中放置断点并能够调试它,但它不起作用。我没有在规格中找到任何其他调试提及。我有什么办法让这项工作成功吗?也许“可选”这个词暗示我需要为它起作用......有什么建议吗?

6 个答案:

答案 0 :(得分:70)

自2017年起更新:

VS2017现在可以直接在Visual Studio中调试typescript,就像调试c#一样。请参阅下面的答案。

以前版本的VS的原始答案:

您可能无法在VS中进行调试,但您可以在某些浏览器中进行调试。 Aaron Powell在博客中发表了关于今天在Chrome Canary中使用断点的文章:https://www.aaron-powell.com/posts/2012-10-03-typescript-source-maps/

总结(非常简要地)Aaron所说的内容,您使用编译器上的-sourcemap开关在与源相同的目录中生成*.js.map文件。在支持source maps的浏览器(Chrome Canary,以及可能是最近的Firefox版本,因为它们是Mozilla的想法)中,您可以像调整.ts文件一样调试.js源代码。

博客完成了“希望Visual Studio或IE(或两者)团队也选择源地图并添加对它们的支持。” - 这表明它还没有发生。

<强>更新

随着TypeScript 0.8.1的发布,Visual Map中现在也可以使用源映射调试:

http://blogs.msdn.com/b/typescript/archive/2012/11/15/announcing-typescript-0-8-1.aspx

宣布:

  

<强>调试   TypeScript现在支持源级调试!源地图格式   作为一种调试语言的方式,它已经越来越受欢迎   转换为JavaScript,并受到各种浏览器的支持   工具。在0.8.1版本中,TypeScript编译器正式使用   支持源地图。另外,新版本的TypeScript for   Visual Studio 2012支持使用源映射格式进行调试。        从命令行,我们现在完全支持使用--sourcemap标志,该标志输出对应于JavaScript输出的源映射文件。这个文件将允许直接调试   启用源映射的浏览器和Visual中的原始TypeScript源   工作室。        要在Visual Studio中启用调试,请在使用TypeScript项目创建HTML应用程序后从下拉列表中选择“调试”。

<强>更新

WebStorm还通过SourceMaps添加了对调试的支持:http://blog.jetbrains.com/webide/2013/03/webstorm-6-0-released-adds-typescript-debugging-with-source-maps-fresh-ui-and-much-more/

  

首先,WebStorm允许更智能,更简化的网络   使用TypeScript,CoffeeScript和。等现代语言进行开发   镖。除了为这些提供一流的代码编辑器   语言,WebStorm 6提供:

     

自动编译/转换这些高级语言   进入所有支持平台上的浏览器识别的那些。   功能齐全的TypeScript,Dart或CoffeeScript调试   源地图。

答案 1 :(得分:14)

使用VS2013 Typescript应用程序,我无需在web.config中进行任何更改。我在ts文件中放置一个断点并在IE中调试,并且断言,断点在TypeScript中停止。

答案 2 :(得分:5)

现在已在VS 2017中修复此问题,因此您可以直接在Visual Studio和打字稿中进行调试。

只需在* .ts文件中设置断点,它就会被点击。

它将在VS中调试,而不是IE,就好像你正在调试c#。

答案 3 :(得分:3)

使用Visual Studio调试typescript可以使用正确的设置。 (在以前版本的VS中,我有时会遇到问题,下面是它如何在VS 2015 CTP 6中正常工作)

  1. 首先,确保在将打字稿编译为javascript时创建源地图。所以你应该在每个xxx.js附近有一个xxx.js.map文件。

    通过在Visual Studio外部运行typescript编译器获取源映射不会造成任何困难,在tsc命令行添加

    --sourcemap %1.ts
    

    默认情况下,您的gulp脚本通常会创建源图。

  2. 在Visual Studio中配置您的Web应用程序

    Internet Explorer 设置为启动浏览器。我只使用IE工作,不认为任何其他浏览器都能正常工作。

    在项目属性中,转到&#34; Web&#34;选项卡并配置&#34;调试器&#34;底部的部分:禁用所有调试器!这是反直觉的,您可能会看到以下错误消息:

    您试图启动调试器,但根据Web属性页面上的当前调试设置,没有要调试的过程。当“不要打开页面”时会发生这种情况。等待来自其他进程的请求&#34;选择选项,并禁用ASP.NET调试。请检查Web属性页面上的设置,然后重试。

    正如错误消息所示,Web属性顶部的“开始操作”应该是另一个选项,例如&#34; 当前页面&#34;。

    立即在Visual Studio中的ts代码中设置断点

    点击 F5

  3. 虽然您可以使用Visual Studio编辑器来调试和编辑ts文件,但是#34;编辑并继续&#34;不起作用,目前没有浏览器可以重新加载js和js.map文件并继续。 (如果我错了,请告诉我任何人,我会很高兴。)

答案 4 :(得分:2)

在我的任何机器上使用VS2013 Update 3时,TypeScript调试对我来说都不起作用。非常沮丧之后,我决定尝试更新到VS2013 Update 4 CTP。最后断点正在VS中被击中!

答案 5 :(得分:0)

简短回答:重新启动Visual Studio

背景: 我有2个visual studio 2015实例和两个不同的TypeScript项目。第一个启动的实例没有正确调试,第二个启动了。 所有项目设置都是相同的。 我终于重新启动了第一个实例,然后调试了TypeScript(最后)。