Я пытаюсь отладить свой код Typescript в Visual Studio Code, используя расширение Chrome Debugger, но получаю сообщение «Непроверенная точка останова» на моей точке останова, и выполнение не останавливается на моей точке останова.
Вот мой файл launch.json:
{
linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"sourceMaps": true,
"webRoot": "${workspaceFolder}"
}
]
}
Версия приложения:
Есть ли другие предложения о том, как я могу решить эту проблему?






Я наконец выяснил, в чем дело:
Когда я читаю определение «$ {workspaceFolder}», оно гласит следующее:
the path of the folder opened in VS Code
Моя ошибка:
Мой путь в Windows к моему проекту был следующим: C:\Users\myusername\Documents\VSCode\Source\ProjectName
Через Visual Studio Code у меня была открыта папка Source, и мне всегда приходилось выполнять команду изменения каталога (cd ProjectName) в Integrated Terminal на «ProjectName». Это привело к созданию .vscode folder and launch.json file в папке Source, а не в папке ProjectName.
Вышеупомянутая ошибка привела к тому, что ${workspaceFolder} указывал на папку Source, где не было компонентов Angular, вместо того, чтобы указывать на папку ProjectName.
Исправление:
В Visual Studio Code откройте папку: C:\Users\myusername\Documents\VSCode\Source\ProjectName и установите мой launch.json в этом каталоге.
Проще говоря, в Visual Studio Code откройте папку, содержащую package.json.
Как вы читаете определение ${workspaceFolder}? (Другими словами, как проверить значение этой переменной в VS Code?)
Я поднял это как отдельный вопрос, получил ответ. На случай, если кому-то понадобится и эта информация.
Для людей, которые попадают сюда через поиск, и это не ответ. Вы также получите непроверенную точку останова, если в файле, который вы пытаетесь отладить, есть изменения, которые не сохранены.
Спасибо! Я использовал "webRoot": "${workspaceFolder}/ClientApp" в проекте, созданном с помощью dotnet new angular.
Приведенный выше ответ, вероятно, решит множество проблем, но не решил мою. У меня была гораздо более простая и досадная проблема ...
Параметры конфигурации в файле launch.json чувствительны к регистру.
Моя запись "webRoot" была написана правильно, но у меня в одном из слов была заглавная буква B вместо строчной b.
Например:
"webRoot": "${workspaceFolder}/My.Folder"
не будет соответствовать папке в вашем рабочем пространстве с именем:
My.folder
Надеюсь, это кому-то поможет.
Мой был еще проще: у меня была лишняя косая черта после "workspaceFolder" "webRoot": "$ {workspaceFolder /}"
Я также столкнулся с проблемой после переименования папки проекта, и оказалось, что свойство «webRoot» указывало на «${workspaceFolder}/src» вместо «${workspaceFolder}». Возможно, это было частью обновления для расширения «Отладчик для Chrome», но, поскольку я не получал никаких обновлений, я не могу это проверить.
Обновление «webRoot», перезапуск сеанса ng serve и запуск нового сеанса отладки сделали свое дело. Надеюсь, это поможет кому-то с подобным сценарием.
Если вы используете разделение кода через веб-пакет, ваша точка останова не будет «проверена» до тех пор, пока Chrome не загрузит этот модуль (т. Е. Обычно, когда вы переходите к этой части приложения).
В моем случае мне пришлось определить значение sourceMapPathOverrides следующим образом:
Файл launch.json (находится в папке .vscode):
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}",
"sourceMaps": true,
"smartStep": true,
"internalConsoleOptions": "openOnSessionStart",
"sourceMapPathOverrides": {
"webpack:///*": "${webRoot}/project/app/*"
}
}
]
}
Мой источник находится в ${workspaceFolder}/project/app.
добавление атрибута webpack должно работать, но мне пришлось найти путь, выполнив команду: .scripts в консоли отладки VSCODE, пока приложение запущено / запущено
Моя проблема заключалась в том, что сопоставление источников не было настроено должным образом. Убедитесь, что ваши фактические источники TS отображаются на вкладке «Источники» в расширениях отладки Chrome, и сначала попробуйте разместить там свои точки останова. Может кому поможет.
Дано много правильных ответов. В моем случае комбинация всех этих ответов помогла, и мне потребовалось много времени, чтобы понять это. Я надеюсь, что смогу сэкономить тебе время на головную боль с этим, так что
позвольте мне резюмировать это шаг за шагом со ссылкой на ответы выше, которые мне помогли:
cd в папку проекта. cd myProjectcode ..vscode. .vscode является подкаталогом папки вашего проекта. src, то вы найдете там папку .vscode (как это было в моем случае), содержащую файлы конфигурации, которые бесполезны для отладки.Настройте конфигурацию отладки в файле .vscode\launch.json.
Убедитесь, что вы указали правильный порт для своего приложения, в моем случае порт 4200 работает нормально.
Также убедитесь, что параметр "webRoot" настроен правильно (см. Ответ от Стиг Перес). В моем случае к нему нужно было добавить подпапку. Чтобы узнать, какой путь указан переменной $(workspaceFolder), ознакомьтесь с вопросом, который я задал в StackOverflow относительно того, как отображать значения переменных кода VS.
Примечание:. Если такой конфигурации еще нет, сделайте следующее, чтобы добавить ее: Перейдите к расширению отладки (т. Е. Нажмите на боковая планка). В раскрывающемся списке отладчика выберите «Добавить конфигурацию ...», затем нажмите синюю кнопку «Добавить конфигурацию». Выберите «Запустить Chrome» в качестве конфигурации, которую нужно добавить.
Пример конфигурации (launch.json):
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/projectsubfolder"
}]
Замените projectsubfolder вложенной папкой, которая может быть в вашем проекте. Обратите внимание, что это чувствительно к регистру (см. Ответ от Майкл Уолш).
Теперь установите точки останова в своем приложении.
Чтобы запустить приложение с отладчиком, откройте окно терминала внутри кода VS, введите cd projectsubfoldernpm install & ng serve
. Это обеспечит разрешение и загрузку зависимых пакетов до компиляции приложения. Дождитесь завершения компиляции.
Затем щелкните зеленый треугольник в отладчике VS, который запустит окно Chrome с прикрепленным отладчиком.
Примечание: Вам не нужно запускать npm install каждый раз, только когда пакеты / зависимости изменились. В большинстве случаев для повторной компиляции и запуска кода достаточно выполнить ng serve.
эта работа для меня, спасибо: { "name": "Chrome", "type": "chrome", "request": "launch", "url": "http://localhost:3000", "webRoot": "${workspaceFolder}/src", }
В моем случае проблема заключалась в том, что точка останова была установлена в строке, где объявлялась функция.
openDetails(data: Asset) { <-- The break point was here
this.datailsOpen = true;
this.currentAsset = data;
}
Решение: переместить его внутрь тела функции
openDetails(data: Asset) {
this.datailsOpen = true; <-- Move the break point here
this.currentAsset = data;
}
Если все выглядит правильно, но точка останова все еще не достигнута, мне нужно было внести изменения, чтобы указать точное имя файла, которое будет обслуживаться. Например, на NodeJS Express, просто указав localhost:3000, не остановился бы на моих точках останова, но указание localhost:3000/index.html работало должным образом.
Полный конфиг:
Моя папка открыта в VSCode: learningPixi с полным расположением папки (Ubuntu Linux): /home/leigh/node/pixi-tut/learningPixi
Моя структура папок:
/home/leigh/node/pixi-tut/learningPixi/.vscode/launch.json
/home/leigh/node/pixi-tut/learningPixi/public/index.html
/home/leigh/node/pixi-tut/learningPixi/server.js
Содержимое моего файла launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000/index.html",
"webRoot": ${workspaceFolder}/public",
"skipFiles": ["pixi.min.js"]
}
]
}
"skipFiles" также был очень полезен, иначе отладчик выполняет шаги при каждом вызове функции.
Моя (очень простая) экспресс-конфигурация сервера только для отладки JavaScript в статических файлах была:
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, '/public')));
app.listen(3000, () => console.info('App started on port 3000'));
И согласно приведенной выше структуре папок убедитесь, что index.html находится в папке / public.
При отладке JavaScript из файла HTML вам также может потребоваться перейти к настройкам в VSCode и включить: Разрешить точки останова везде
В моем случае у меня был файл main.js в корне проекта для работы в качестве электронного приложения. Если этот файл main.js был удален, проблема была решена.
Я получал эту ошибку просто потому, что у меня не было "sourceMaps": true в моей конфигурации отладки.
Проведя 3 драгоценных часа своей жизни и пройдя многие из ответов, перечисленных выше, моя проблема была так же проста, как отсутствие следующей строки в моем php.ini:
xdebug.remote_autostart = 1
До этого я уже настраивал XDebug на своем XAMPP, но мои точки останова просто не срабатывали. Просто мой сервер отладки не был настроен на автоматический запуск.
Надеюсь, это спасет чей-то день.
Unverified breakpoint
Я нашел 3 причины этой проблемы:
launch.json неверен. Убедитесь, что номер порта соответствует порту localhost, на котором работает ваше веб-приложение. Я изменил свой на 3000, чтобы устранить ошибку:"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
}
]
Мне нужно было установить правильную папку рабочего пространства.
Мне нужно было запустить мое веб-приложение с npm start перед отладкой.
Мне помог последний "npm start" перед отладкой.
npm i исправил это с моей стороны. Я иногда получаю непроверенные точки останова при создании новой папки / файла, и обычно это происходит.
Очередное обновление для @ angular / cli 9.1.7 28.05.2020 ...
Теперь это моя рабочая конфигурация для @ angular / cli 9.1.7. Удаление sourceMapPathOverrides
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:21460",
"webRoot": "${workspaceFolder}"
}]
}
Мое решение проблемы «Непроверенная точка останова».
По умолчанию .vscode / launch.json, созданный в VSC с помощью опции «Добавить конфигурацию», будет выглядеть примерно так (я изменил порт с 8080 на 4200).
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}"
}]
}
Добавление элемента ниже решает мою проблему с «Непроверенной точкой останова».
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
Полный и рабочий .vscode / launch.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
}]
}
Можно добавить некоторые дополнительные элементы:
"breakOnLoad": true,
"sourceMaps": true,
Однако в моем случае они мне не понадобились для решения проблемы.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"breakOnLoad": true,
"sourceMaps": true,
"sourceMapPathOverrides": {
"*": "${webRoot}/*"
}
}]
}
Это сработало для меня, если я запустил сеанс отладки Chrome в первый раз, но если я изменил точки останова, они не попали.
БЛАГОДАРЮ ВАС! У меня никогда раньше не было этой проблемы, но внезапно я обнаружил, что не могу отлаживать только что созданный проект Angular 8. Это исправило это.
Мне пришлось удалить мою папку .vscode и восстановить ее. Кроме того, папка указывала на неправильный путь, поэтому мне пришлось изменить ее обратно на мой текущий путь к папке проекта. Спасибо
Решением для меня было добавить в файл launch.json следующую строку: «requireExactSource»: ложь. После этого перезапустите VSC и проверьте, работает ли он.
Я открыл в VS code папку мое приложение, где были папка клиент и папка сервер. Мне пришлось изменить launch.json из этого
"webRoot": "${workspaceFolder}"
к этому
"webRoot": "${workspaceFolder}\\client"
Другой ответ, который я только что обнаружил, касается ленивых загружаемых модулей.
Если вы хотите установить точки останова в коде, который является частью модуля с отложенной загрузкой, и вы не загрузили этот модуль в браузере, код VS не будет иметь доступа к исходным картам для проверки точек останова!
поэтому устанавливайте точки останова только тогда, когда вы загрузили ленивый загруженный модуль, который хотите отлаживать!
Это верно и для моего случая. Я устанавливаю точки останова в файлах, названных после index.js, который является моим входным js-файлом, и они никогда не попадают. Но сначала я устанавливаю точки останова для функций в index.js, и он определенно останавливается на этом, затем я устанавливаю точки останова для других файлов, они также останавливаются и выглядят как activated после index.js.
пока вы запускаете маршрут, который загружает модуль в браузер со связанными точками останова в vscode, он должен работать
В нашем случае эта ошибка возникла из-за символической ссылки Windows на доступ к папке с исходным кодом на двух локальных дисках. Открыл папку с vscode из исходной папки, теперь отладка работает хорошо.
Я пришел сюда, когда использовал флаттер и дротик. Я не знаю, но удаление launch.json в папке .vscode решило мою проблему
Для меня непроверенная точка останова была вызвана тем, что отладчик работал, когда я пытался установить точку останова. Чтобы решить эту проблему, я просто выключил отладчик, установил нормальную точку останова и перезапустил отладчик.
Я читаю это и не понимаю, каково решение;) .... Как установить $ {workspaceFolder}?