使用Visual Studio调试TypeScript代码
有没有办法在Visual Studio中调试TypeScript源代码(而不是调试生成的javascript)?
从TypeScript语言规范:
TypeScript可选地提供源映射,从而实现源代码级调试。
因此,我期望能够在ts代码中放置断点并能够调试它,但它不起作用。 在规格中我没有发现任何其他的调试内容。 我应该做些什么来完成这项工作? 也许“可选”这个词暗示我需要为它做些事情......任何建议?
截至2017年的更新:
VS2017现在可以直接在Visual Studio中调试打字稿,就像调试c#一样。 请参阅下面的答案。
VS之前版本的原始答案:
您可能无法在VS中进行调试,但可以在某些浏览器中进行调试。 Aaron Powell已经在博客上发表了关于如何在Chrome Canary中使用断点的说法:https://www.aaron-powell.com/posts/2012-10-03-typescript-source-maps/。
总结(非常简要地)Aaron说的是,你使用编译器上的-sourcemap
开关在你的源文件所在的目录下生成一个*.js.map
文件。 在支持源地图的浏览器(Chrome Canary,可能是最近的Firefox版本,因为它们是Mozilla的想法)之后,您可以像调试常规的.js
文件一样调试.ts
源代码。
博客完成“希望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编译器正式支持源地图。 此外,用于Visual Studio 2012的新版TypeScript支持使用源映射格式进行调试。 在命令行中,我们现在完全支持使用--sourcemap标志,该标志输出对应于JavaScript输出的源映射文件。 该文件将允许直接在启用了源图的浏览器和Visual Studio中调试原始的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-以及更多/
首先,WebStorm允许使用TypeScript,CoffeeScript和Dart等现代语言进行更智能,更流畅的Web开发。 除了为这些语言提供一流的代码编辑器之外,WebStorm 6还提供:
将这些高级语言自动编译/转换为所有受支持平台上由浏览器识别的语言。 使用源地图的TypeScript,Dart或CoffeeScript的全功能调试。
使用VS2013 Typescript应用程序,我不必在web.config中更改任何内容。 我在ts文件中放置了一个断点并在IE中进行了调试,并且presto在TypeScript中停止了断点。
使用Visual Studio调试打字稿可以使用正确的设置。 (在VS的以前版本中,我有时会遇到问题,下面是VS 2015 CTP 6的工作原理)
首先, 确保在将打字稿编译为JavaScript时创建源映射 。 所以你应该在每个xxx.js附近有一个xxx.js.map文件。
通过在Visual Studio之外运行打字稿编译器来获取源地图并不会造成任何困难,在tsc命令行添加
--sourcemap %1.ts
你的gulp脚本通常会默认创建源代码。
在Visual Studio中配置您的Web应用程序 。
将Internet Explorer设置为启动浏览器。 我只能用IE浏览器工作,不认为任何其他浏览器都能正常工作。
在项目属性中,转到“Web”选项卡并在底部配置“调试器”部分: 禁用所有调试器 ! 这是反直观的,你可能会看到这个错误信息:
您已尝试启动调试器,但根据Web属性页面上的当前调试设置,不存在调试过程。 当“不打开页面,等待来自另一个进程的请求”选项被选中时,会发生这种情况,并且禁用ASP.NET调试。 请在网络媒体资源页面上检查您的设置,然后重试。
正如错误消息所述,Web属性顶部的开始操作应该是另一个选项,如“ 当前页面 ”。
现在或以后,在Visual Studio中的ts代码中设置断点 。
打F5
虽然您可以使用Visual Studio编辑器来调试和编辑ts文件,但“编辑并继续”不起作用,目前没有浏览器可以重新加载js和js.map文件并继续。 (如果我错了,请纠正我的错误,我会很高兴。)
链接地址: http://www.djcxy.com/p/94967.html