вы знаете, как начать, NG Live Development Serverа затем запустить Chromeвсего одним F5щелчком мыши?
Мердан Гочмурадов
2
извините, это невозможно, потому что задача "ng serve" должна быть запущена в preLaunchTask. «ng serve» должен работать постоянно, поэтому «preLaunchTask» не завершается, что означает, что код vs не запускает процесс отладки. но я добавил новую конфигурацию, которая должна сделать работу немного быстрее ;-)
Asesjix 01
1
Четкий и короткий ответ. Было бы хорошо, если бы вы могли вкратце объяснить, что launch.jsonи tasks.jsonделает здесь. Как я понял, launch.jsonэто запустить сервер узла и прослушать порт 8080, а также tasks.jsonдать команду использовать npmи выполнить команду ng serveдля запуска приложения.
Shaijut
@Zachscs какую угловую версию вы использовали?
Asesjix
1
У меня была та же проблема, точки останова не устанавливались, пока, наконец, я не понял, что мой веб-корень был неправильным. У меня было значение по умолчанию для webRoot ("webRoot": "$ {workspaceFolder}") вместо $ {workspaceFolder} / my-app-folder
Джозеф Симпсон
48
Похоже, команда VS Code теперь хранит рецепты отладки.
Спасибо, каждый раз при запуске хрома я должен запускать эту команду. chrome.exe --remote-debugging-port=9222Есть ли альтернатива для одноразовой конфигурации
Saurabh47g
В зависимости от ваших учетных данных вы можете щелкнуть правой кнопкой мыши хром в меню «Пуск» Windows, нажать «Свойства» и добавить туда флаг. У меня это не работает на моем рабочем компьютере, поэтому я использовал псевдоним команды в git bash для Windows.
Можете ли вы отлаживать / устанавливать точку останова для кода на стороне сервера одновременно с angular с этой конфигурацией?
Mika571
@ Mika571 нет, к сожалению ... Я попробовал это прямо сейчас. Я бы тоже хотел отлаживать серверную и клиентскую части одновременно.
Лениэль Маккаферри
1
Ответ @Asesjix очень подробный, но, как отмечали некоторые, по-прежнему требуется несколько взаимодействий для запуска, ng serveа затем запуска приложения Angular в Chrome. Я получил это одним щелчком мыши, используя следующую конфигурацию. Основное отличие от ответа @Asesjix заключается в том, что тип задачи сейчас, shellа вызовы команд добавляются startраньше, ng serveпоэтому ng serveмогут существовать в собственном процессе и не блокировать запуск отладчика:
В моем случае я не использовал исходное дерево папок проекта Angular, и я знал, что что-то не так с webRoot/ {workspaceFolder}bit, но все мои эксперименты не дали результата. Получил совет от другого SO-ответа, на который я свяжусь, если найду его снова.
Мне помогло найти содержимое переменной {workspaceFolder}во время выполнения, а затем изменить его на расположение моей папки «src», в которой у вас есть «app / *». Чтобы найти его, я добавил preLaunchTaskв свой файл launch.json и задачу для вывода значения {workspaceFolder}.
launch.json , который появляется после установки отладчика Chrome
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/src/newProjectRoot/",
"preLaunchTask": "Echo values" //Just to see what the cryptic vs code variables actually are https://code.visualstudio.com/docs/editor/variables-reference
}
]
}
Tasks.json По умолчанию отсутствует. Нажмите Ctrl + Shift + p, и я думаю, это называется «создать задачу для другой команды» или что-то в этом роде. Кажется, не видно его после создания tasks.json. Вы также можете просто создать файл в том же месте, что и launch.json.
Как только я узнал значение $ {workspaceFolder}, я исправил его так, чтобы он указывал на мою папку src в моем новом дереве проекта, и все заработало. Отладка требует, ng serveчтобы она выполнялась либо как задача перед запуском, либо как часть сборки (примеры выше), либо в командной строке.
Вот ссылка на все переменные, которые вы можете использовать:
Ответы:
Протестировано с Angular 5 / CLI 1.5.5
launch.json
(внутри папки .vscode)launch.json
(см. Ниже)tasks.json
(внутри папки .vscode)tasks.json
(см. Ниже)launch.json for angular/cli >= 1.3
tasks.json for angular/cli >= 1.3
Протестировано с Angular 2.4.8
launch.json
launch.json
(см. Ниже)ng serve
)launch.json for angular/cli >= 1.0.0-beta.32
launch.json for angular/cli < 1.0.0-beta.32
источник
NG Live Development Server
а затем запуститьChrome
всего однимF5
щелчком мыши?launch.json
иtasks.json
делает здесь. Как я понял,launch.json
это запустить сервер узла и прослушать порт 8080, а такжеtasks.json
дать команду использоватьnpm
и выполнить командуng serve
для запуска приложения.Похоже, команда VS Code теперь хранит рецепты отладки.
https://github.com/Microsoft/vscode-recipes/tree/master/Angular-CLI
источник
Есть два разных способа сделать это. Вы можете запустить новый процесс или присоединиться к уже существующему.
Ключевым моментом в обоих процессах является одновременная работа сервера разработки веб-пакетов и отладчика VSCode .
Запустить процесс
В свой
launch.json
файл добавьте следующую конфигурацию:Запустите сервер Webpack dev из Angular CLI, выполнив
npm start
Присоединиться к существующему процессу
Для этого нужно запустить Chrome в режиме отладчика с открытым портом (в моем случае это будет
9222
):Mac:
Окна:
launch.json
файл будет выглядеть следующим образом:npm start
В этом случае отладчик присоединен к существующему процессу Chrome вместо запуска нового окна.
Я написал свою статью, где описал этот подход с иллюстрациями.
Простая инструкция по настройке отладчика для Angular в VSCode
источник
chrome.exe --remote-debugging-port=9222
Есть ли альтернатива для одноразовой конфигурацииЭто подробно объясняется на сайте Visual Studio Code: https://code.visualstudio.com/docs/nodejs/angular-tutorial
источник
Можно использовать эту конфигурацию:
источник
Вот более легкое решение, работающее с Angular 2+ (я использую Angular 4)
Также добавлены настройки для Express Server, если вы запускаете стек MEAN.
источник
Ответ @Asesjix очень подробный, но, как отмечали некоторые, по-прежнему требуется несколько взаимодействий для запуска,
ng serve
а затем запуска приложения Angular в Chrome. Я получил это одним щелчком мыши, используя следующую конфигурацию. Основное отличие от ответа @Asesjix заключается в том, что тип задачи сейчас,shell
а вызовы команд добавляютсяstart
раньше,ng serve
поэтомуng serve
могут существовать в собственном процессе и не блокировать запуск отладчика:tasks.json:
launch.json:
источник
В моем случае я не использовал исходное дерево папок проекта Angular, и я знал, что что-то не так с
webRoot
/{workspaceFolder}
bit, но все мои эксперименты не дали результата. Получил совет от другого SO-ответа, на который я свяжусь, если найду его снова.Мне помогло найти содержимое переменной
{workspaceFolder}
во время выполнения, а затем изменить его на расположение моей папки «src», в которой у вас есть «app / *». Чтобы найти его, я добавилpreLaunchTask
в свой файл launch.json и задачу для вывода значения{workspaceFolder}
.launch.json , который появляется после установки отладчика Chrome
Tasks.json По умолчанию отсутствует. Нажмите Ctrl + Shift + p, и я думаю, это называется «создать задачу для другой команды» или что-то в этом роде. Кажется, не видно его после создания tasks.json. Вы также можете просто создать файл в том же месте, что и launch.json.
Как только я узнал значение $ {workspaceFolder}, я исправил его так, чтобы он указывал на мою папку src в моем новом дереве проекта, и все заработало. Отладка требует,
ng serve
чтобы она выполнялась либо как задача перед запуском, либо как часть сборки (примеры выше), либо в командной строке.Вот ссылка на все переменные, которые вы можете использовать:
источник