Ответ 1
Я считаю, что вам нужно ${workspaceRoot}/server.js
, а не ${workspaceRoot}/app.js
для program
. В коде, который вы используете, нет приложения app.js, о котором вам сообщает эта (плохо сформулированная) ошибка.
Я создал простое приложение node.js(исходный код здесь https://azure.microsoft.com/en-us/blog/visual-studio-code-and-azure-app-service-a-perfect-fit/)
var http = require('http');
http.createServer(function (req, res) {
console.log('Got request for ' + req.url);
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('<h1>Hello Code and Azure Web Apps!</h1>');
}).listen(process.env.PORT);
И нажал VSCode, сгенерированный launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/app.js",
"stopOnEntry": false,
"args": [],
"cwd": "${workspaceRoot}",
"preLaunchTask": null,
"runtimeExecutable": null,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"externalConsole": false,
"sourceMaps": false,
"outDir": null
},
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858,
"address": "localhost",
"restart": false,
"sourceMaps": false,
"outDir": null,
"localRoot": "${workspaceRoot}",
"remoteRoot": null
}
]
}
И еще при запуске я вижу:
Атрибут "программа" не существует.
Может кто-нибудь помочь, что неправильно?
Я считаю, что вам нужно ${workspaceRoot}/server.js
, а не ${workspaceRoot}/app.js
для program
. В коде, который вы используете, нет приложения app.js, о котором вам сообщает эта (плохо сформулированная) ошибка.
Я также столкнулся с этой проблемой из-за того, где VS Code помещает каталог .vscode, содержащий файл launch.json. Он поместил его в один каталог, поэтому мне пришлось добавить каталог в путь, как определено в файле launch.json:
"program": "$ {workspaceRoot}/myDir/app.js",
Надеюсь, это поможет.
Другая проблема, с которой я столкнулся, - это путь, который был настроен Using\\Backslashes\\Like\\So
и отлично работал в Windows, но на Mac он дал указанную выше ошибку.
(Решение: изменено на /
)
Ошибка говорит о том, что путь к вашему коду был неверным.
VSCode определяет родительский каталог своего файла конфигурации ".vscode/launch.json" как "$ {workspaceRoot}" или "$ {workspaceFolder}".
Так, например, если вы хотите запустить файл "myproject/subfolder/main.js", вы должны настроить ваш "myproject/.vscode/launch.json" следующим образом: "program": "${workspaceRoot}/subfolder/main.js"
Обратите внимание, что настройка "program": "${workspaceRoot}/myproject/subfolder/main.js"
является ошибкой и приведет к ошибке "Атрибут" program "не существует".
Сегодня я потратил несколько минут, пытаясь понять эту проблему. Что для меня работало, это удалить существующий launch.json и запустить приложение, которое предложит вам выбрать среду, которая в моем случае была Node. Это создало новый launch.json, в котором я обновил путь к программе.
Я была такая же проблема. В моем случае мой launch.json имел следующую строку
"program": "${workspaceFolder}\\index.js"
Мой активный код, который я пытался отлаживать, был в app_v2.js, поэтому я обновил его до следующего, а затем отладка сработала.
"program": "${workspaceFolder}\\app_v2.js"
У меня был тот же вопрос, и мне потребовалось пару часов, чтобы понять его. Что я в основном сделал, так это то, что я удалил папку после ${workspaceFolder}
Формат был ${workspaceFolder}/xxxx\\folder\\subfolder\\subfolder
так что, удалив то, что после "workspaceFolder" и начав мой путь с двойной обратной косой черты, он исправил это для меня.
В идеале ошибка должна читать "файл, указанный в программном атрибуте, не существует", потому что это то, что происходит. Начиная с VSCode 1.30.2, он показывает путь вместе с ошибкой.
В моем случае у меня было "program": "${workspaceFolder}\\${file}"
поэтому путь был примерно таким c:\dir\c:\dir\file.js
Я исправил это, удалив ${workspaceFolder}
так как хотел иметь возможность отлаживать отдельные файлы.