Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VS2017中调试typescript代码?_Typescript_Visual Studio 2017 - Fatal编程技术网

如何在VS2017中调试typescript代码?

如何在VS2017中调试typescript代码?,typescript,visual-studio-2017,Typescript,Visual Studio 2017,我有一个ASP.NET核心项目,它使用TypeScript 是否可以在Visual Studio中调试TypeScript代码?在早期版本的Visual Studio中,这是不可能的 然而,在Visual Studio 2017中,这一问题已得到解决。只需设置断点并使用IE(或Chrome)运行项目,您的断点将在ts文件中命中,您可以在VS环境(而不是浏览器代码调试窗口)中单步执行代码。这是Typescript开发向前迈出的一大步 有趣的是,如果代码跳转到另一个没有匹配ts文件的文件,则代码将转

我有一个ASP.NET核心项目,它使用TypeScript


是否可以在Visual Studio中调试TypeScript代码?

在早期版本的Visual Studio中,这是不可能的

然而,在Visual Studio 2017中,这一问题已得到解决。只需设置断点并使用IE(或Chrome)运行项目,您的断点将在ts文件中命中,您可以在VS环境(而不是浏览器代码调试窗口)中单步执行代码。这是Typescript开发向前迈出的一大步


有趣的是,如果代码跳转到另一个没有匹配ts文件的文件,则代码将转换为js,然后在可能的情况下再次转换回ts。

确保启用浏览器链接以查看ts断点被命中。该选项是VS2017中浏览器选择下拉列表右侧的蓝色箭头圆圈,似乎默认为禁用


调试JavaScript和TypeScript是非常容易的,因为它可以在中使用。你还需要一个或更多的时间

之前,我在运行JavaScript调试时遇到很多问题,但通过这些更新,它只是开箱即用:

  • 我刚开始调试你的ASP.NET项目
  • 在TypesScript(或JavaScript)文件中设置断点
  • 如果未启用JS调试,将显示一个消息窗口,建议启用它。此设置也可以在VS选项中找到(搜索“调试”以快速查找):工具>选项>调试>常规>启用ASP.NET(Chrome、Edge和IE)的JavaScript调试
  • 无需重新启动。断点会立即命中
注意:使用Edge时,将提示开发者工具服务器已启动:


我试图将dotnetcore ReactRedux模板转换为Typescript,但无法获取断点以命中我的Typescript文件


我能够确定,在您的
tsconfig.json
文件中,您需要设置选项
inlineSourceMap:true
inlineSources:true

我在Visual Studio 2017(版本15.9.5)中发现了两个不会中断的条件

1) .UseContentRoot
在Program.cs中的WebHost.CreateDefaultBuilder方法中,如果使用UseContentRoot()更改内容路由,VS将不会中断

2) wwwroot文件夹
您可以通过UseWebRoot()更改webroot,这将正常工作。

但是,如果删除项目根目录中的“wwwroot”文件夹,VS将不会中断。

默认情况下,它应该可以工作。什么不起作用?你能分享更多细节吗?我所知道的是,当调试器启动时,VS会与浏览器进行一些连接。我可以将其用于IE,但不能用于Chrome。知道为什么吗?此外,如果您将所有脚本放在一个捆绑包中,则此操作也不起作用-(编辑!如果我刷新了浏览器链接,则工作正常!)@GregGum我刚刚安装了VS2017社区版,但找不到要添加到项目中的typescript文件。您能否建议如何使用VS2017社区版的typescript,因为它不存在。那么,我需要下载并安装什么才能在VS2017社区版中获得typescript文件和ProiJet模板?映射是否复制到输出目录?你说的“映射是否复制到输出目录”是什么意思?我使用bundle将所有Js文件放在一个bundle中;我应该也包括地图文件吗?当我放置断点(在VS2017 TS文件中)时,我收到“未加载任何代码”的警告。根据:“您可以使用浏览器链接在多个浏览器中同时刷新web应用程序,这对跨浏览器测试很有用。”因此,这与命中断点无关。