angular - Error en la instrucción de Typescript: "Puntos de interrupción establecidos pero aún no vinculados" en VS2017
Creo un proyecto con "dotnet new angular". Cuando se establece un punto de interrupción en una instrucción de TypeScript, aparece como un círculo rojo abierto al ejecutarlo. El mensaje de error es "El punto de interrupción actualmente no será alcanzado. Puntos de interrupción establecidos pero aún no vinculados."
Este problema comenzó cuando actualicé de .Net Core SDK 1.x a 2.x. ¿Es esto un error en 2.x o tiene que ver con mi configuración? ¿Alguien que use 2.x tiene los puntos de interrupción de Typescript funcionando en VS2017? Describo mi configuración en detalle a continuación y dónde falla.
Para duplicar el problema, puedes establecer un punto de interrupción en "this.currentCount++;" en ClientApp\src\app\counter\counter.component.ts y luego hacer clic en "Incrementar" en la página "Contador".
Actualmente estoy usando lo que deberían ser las últimas versiones oficiales:
Visual Studio Pro 15.7.2
.Net Core SDK 2.1.300 (x64)
.Net Core Runtime 2.1.0 (x64)
Intenté otras versiones de SDK 2.x. Falla en v2.1.4 y v2.1.300. Pero los puntos de interrupción funcionan en v2.0.0, 2.1.200 y 2.1.201.
La diferencia es que, cuando tiene éxito, cada uno de los SDK genera los archivos "webpack.config.js" y "webpack.config.vendor.js" en la raíz del proyecto durante el "dotnet new angular". La última versión 2.x no genera estos archivos en la raíz. Así que no quiero usar versiones anteriores que sí lo hacían.
La otra diferencia es que los proyectos en funcionamiento definen la ubicación de "ClientApp" en webpack.config.js. En aquellos proyectos que fallan, la ubicación de ClientApp se define en startup.cs.
Algo más de información:
Usando el SDK v2.1.201 (uno que funciona), el package.json generado contiene:
"typescript": "2.4.1",
"webpack": "2.5.1",
"webpack-hot-middleware": "2.18.2",
"webpack-merge": "4.1.0",
Usando el SDK v2.1.300 (el que falla), el package.json generado contiene:
"typescript": "~2.5.3"
pero no contiene entradas para webpack. En node_modules/.bin hay un "webpack.cmd" cuya versión es 3.11.0.
Cuando escribo "tsc -v" en una ventana del Símbolo del Desarrollador de VS2017, obtengo:
version 2.8.4
ACTUALIZACIÓN: Agregué un problema a los problemas del SDK de .Net.
Me pidieron allí que abriera un elemento de Retroalimentación de Desarrollador para Visual Studio. Creen que es un problema de VS para las herramientas de TS/JS.
Si también estás teniendo este problema, puede ayudar a aumentar su prioridad si lo agregas en la página de comentarios.
ACTUALIZACIÓN (2018-03-23) RESUELTO
Este problema puede haberse resuelto antes de hoy, pero no lo había revisado nuevamente hasta hoy. Hoy, actualicé VS2017 a la versión 15.9.9, el SDK de .Net Core a 2.2.105 y el Host de .Net Core a 2.2.3. Escribir "tsc -v" en el símbolo del desarrollador muestra "Versión 3.1.2".
Cuando ahora ejecuto "dotnet new angular" y pongo un punto de interrupción en "this.currentCount++", se cumple el punto de interrupción.
NOTA: Este problema aún puede estar ocurriendo al ejecutar la aplicación cliente en otros navegadores que no sean Chrome. Pero yo siempre estaba usando Chrome, tanto cuando tuve el problema antes como hoy cuando parece estar resuelto.
Respuesta #1
Actualización de Microsoft en el hilo vinculado:
Los puntos de interrupción de Typescript en Visual Studio no funcionarán para proyectos de ASP.NET Core que actualmente estén en cualquiera de las 2 situaciones:
- Si ha cambiado el nombre o eliminado el directorio "ClientApp" dentro de su proyecto de Visual Studio para que sea otra cosa, O
- Tienes archivos de Typescript/JavaScript en un directorio diferente (distinto de ClientApp).
Desafortunadamente, actualmente no tenemos una manera de resolver puntos de interrupción en archivos de Typescript fuera de la carpeta ClientApp. Estamos trabajando con los equipos correspondientes dentro de Visual Studio para una solución, pero si te ves afectado por este cambio, recomendaría cambiar a trabajar dentro de la carpeta "ClientApp".
Mi solución alternativa es que depuro el front-end por separado usando VSCode, lo cual no es ideal pero parece la única manera de hacerlo funcionar con .net core y una estructura de proyecto personalizada
Respuesta #2
El 29 de agosto de 2018, Blair Wang informó una solución a este problema en: https://developercommunity.visualstudio.com/content/problem/268468/typescript-breakpoints-not-hit-in-visual-studio-15.html#reply-323159
"This issue has been fixed and is now available in our latest update. You can download the update via the in-product notification or from here: https://visualstudio.microsoft.com/vs/"
No había visto esto hasta hoy (2018-03-23), cuando probé la solución usando:
Visual Studio v15.9.9
.Net Core SDK 2.2.105
.Net core Host 2.2.3
Typescript 3.1.2
Estaba funcionando con la corrección. También sigue funcionando hasta hoy, 2019-09-09, con VS2017 v15.9.15 y también con VS2019.
