Подтвердить что ты не робот

Как отлаживать HTML и JavaScript вместе в VSCode (код Visual Studio)?

У меня есть действительно простой проект в VSCode, файл index.html, связанный с одним файлом app.js.

Я хочу запустить и отладить этот мини-сайт, когда я нажму F5.

Как настроить VSCode для открытия index.html в браузере, а затем разрешить мне устанавливать точки останова в app.js, которые будут вызваны моим взаимодействием с приложением в браузере?

В Visual Studio это "просто сработает", потому что он запускает собственный веб-сервер IIS Express. В VSCode я не уверен, как настроить start.json и/или tasks.json для создания простого веб-сервера node.js и обслуживать index.html.

Я видел несколько примеров отладки javascript-приложений, например this.json:

{
    "version": "0.1.0",
    "configurations": [
        {
            "name": "Launch Bjarte app",
            "type": "node",
            "program": "app.js",
            "stopOnEntry": true,
            "args": [],
            "cwd": ".",
            "runtimeExecutable": null,
            "runtimeArguments": [],
            "env": {},
            "sourceMaps": false
        },
        {
            "name": "Attach",
            "type": "node",
            "address": "localhost",
            "port": 5858,
            "sourceMaps": false
        }
    ]
}

Это запустит js файл, но я не понимаю, как я могу взаимодействовать с этим приложением.

4b9b3361

Ответ 1

Теперь можно отлаживать веб-страницы Chrome в vscode через удаленную отладку Chrome с расширением, выпущенным Microsoft. Отладчик для Chrome

Как вы можете видеть на этой странице, есть два режима отладки: "Запуск и присоединение". Мне удалось использовать режим Attach, возможно, потому, что у меня нет сервера. Это расширение имеет все важные инструменты отладки: локальные переменные, точки останова, консоль, стек вызовов.

Еще одна причина для пересмотра vscode заключается в том, что теперь он поддерживает IntelliSense для ECMAScript 6, который отображает методы, невидимые в других решениях "IntelliSense", которые я пробовал, например SublimeCodeIntel или последнюю версию WebStorm.

Ответ 2

Кажется, что я хочу сделать в VSCode (пока?) невозможно. Мое решение на данный момент заключается в использовании Live-сервера пакета node. Установите с помощью

> npm install -g live-server

Затем откройте VSCode, щелкните правой кнопкой мыши любой файл в корневой папке вашего проекта и выберите "Открыть в консоли". Затем введите

> live-server

чтобы запустить сервер с вашим проектом в виде корневой папки. Live-сервер откроет браузер по умолчанию, а также отслеживает вашу папку проекта для любых изменений файла и перезагружает страницу html каждый раз, когда вы вносите какие-либо изменения.

Я должен упомянуть, что мое решение с использованием live-сервера не позволяет мне отлаживать мое приложение в VSCode, а запускать его только в браузере. Я отлаживаю в Chrome.

Ответ 3

VSCode будет использовать node для запуска вашего приложения, что означает, что ваше приложение работает на каком-то порту. Вы можете взаимодействовать с вашим приложением, посетив http://localhost:PORT/ Если вы установите точку останова в app.js, она должна быть удалена, когда вы заходите на свой сайт, работающий локально через node. Вот хорошая демонстрация https://channel9.msdn.com/Blogs/cloud-with-a-silver-lining/hello-visual-studio-code-nodejs

Ответ 4

Как и другие говорили, вы устанавливаете это:

Вы можете использовать https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome.

И если вы используете не localhost, а какой-то HTML и JavaScript, вы можете использовать этот код launch.json.

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Launch index.html",
        "type": "chrome",
        "request": "launch",
        "file": "${workspaceFolder}/index.html"
    }
]

}

Ответ 5

Вы можете использовать https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome

В start.json вам просто нужно указать значение URL сервера, который вы используете, и затем вы можете отлаживать свой html + js с помощью кода визуальной студии редактора.

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://127.0.0.1:8081",
            "webRoot": "${workspaceFolder}"
        }
    ]
}

Ответ 6

Я не хотел запускать сервер только для некоторого HTML и JavaScript (в отличие от аналогичного примера), эта конфигурация запуска VS Code вместе с расширением "Отладчик для Chrome" сработала на моей машине с Windows 10:

  {
     "version": "0.2.0",
        "configurations": [
            {
                "name": "Launch HTML file",
                "type": "chrome",
                "request": "launch",
                "file": "${file}"
            }
        ]
    }

Ответ 7

Если у вас есть # в пути, например C:\С#\mypage.htm, вы можете использовать FF & ex. fileBasename или аналогичная переменная - не работает в Chrome:

.vscode\launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch HTML file",
            "type": "firefox",
            "request": "launch",
            "file": "C:/C%23/${fileBasename}"
         }
    ]
}

Или простой полный путь, проверенный с помощью node.js:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}/${fileBasename}"
        }
    ]
}