Я создал простое приложение 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
}
]
}
И все же при запуске вижу:
Атрибут "программа" не существует.
Кто-нибудь может помочь в том, что случилось?
node.js
visual-studio-code
Валерий
источник
источник
"program": "${workspaceRoot}/app.js",
строка, вызывающая ошибку; файл js, на который ссылается эта строка, не существует.server.js
в качестве файла запуска. Возможно, лучшим ответом было бы «program
атрибут указывает не на тот файл»Я также столкнулся с этой проблемой из-за того, что 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"
является ошибкой и приведет к ошибке «Атрибут 'программа' не существует».источник
Сегодня я потратил несколько часов, пытаясь разобраться в этой проблеме. У меня сработало удаление существующего файла launch.json и запуск приложения, которое предлагает вам выбрать среду, которой в моем случае был Node. Это создало новый файл launch.json, в котором я обновил путь к программе.
источник
В идеале ошибка должна читаться как «файл, указанный в атрибуте программы, не существует», потому что именно это и происходит. Начиная с VSCode 1.30.2, он показывает путь вместе с ошибкой.
В моем случае у меня было
"program": "${workspaceFolder}\\${file}"
так, что путь был что-то вродеc:\dir\c:\dir\file.js
Я исправил это, удалив,
${workspaceFolder}
так как хотел иметь возможность отлаживать отдельные файлы.источник
Я была такая же проблема. В моем случае у моего launch.json была следующая строка
"program": "${workspaceFolder}\\index.js"
Мой активный код, который я пытался отладить, находился в app_v2.js, поэтому я обновил его до следующего, а затем отладка сработала.
"program": "${workspaceFolder}\\app_v2.js"
источник
Во-первых, прочтите официальный документ, который отвечает на все ваши вопросы о настройке правильных атрибутов для разных сценариев с использованием
launch.json
.Теперь, чтобы конкретно ответить на этот вопрос, в
${workspaceFolder}
основном это каталог.vscode
каталога, который является корневым каталогом вашего проекта. Таким образом, при установке определенных файлов в качестве программы отладки не забудьте сопоставить путь из корневого каталога проекта или, другими словами, относительный путь к файлу, который должен быть установлен в качестве программы отладки. Это можно легко получить из IDE (VS Code), просто щелкнув файл правой кнопкой мыши и выбравCopy Relative Path
параметр. Затем вставьте это рядом с $ {workspaceFolder} в атрибут программы в вашемlaunch.json
файле, как показано ниже, устранит проблему."program": "${workspaceFolder}/<relative_path>"
Замените относительный путь вашим скопированным относительным путем, как упоминалось ранее. Обратите внимание, что я использую платформу Mac. Используйте разделители путей, соответствующие платформе
В качестве альтернативы, не использовать конфигурацию запуска специально, если это не производственное приложение или простое приложение, не требующее наличия файла конфигурации запуска. Однако в противном случае это очень полезно при отладке в многоцелевой среде (сервер, клиент). На мой взгляд, использование составной настройки конфигурации запуска значительно упрощает задачу. Прочтите этот раздел официальной документации, чтобы узнать, как его настроить, учитывая относительные пути к файлам вашего сервера и клиента.
источник
У меня был тот же вопрос, и мне потребовалось несколько часов, чтобы разобраться в нем. По сути, я удалил папку после
${workspaceFolder}
Формат был
${workspaceFolder}/xxxx\\folder\\subfolder\\subfolder
таким: удалив то, что находится после «workspaceFolder» и начав мой путь с двойной обратной косой черты, он исправил это для меня.источник
У меня была такая же ошибка, потому что я передавал аргументы внутри атрибута "program" следующим образом:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Build -B -p", "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}\\app\\build -B -p D:\\apps\\12" } ] }
Для меня было решено передать аргументы внутри атрибута args, например:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Build -B -p", "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}\\app\\build", "args":["-B", "-pD:\\apps\\12"] } ] }
ОС была Windows 7.
источник
Это просто означает, что когда вы отлаживаете файл, файл app.js просто не существует, и когда вы выполняете отладку, он показывает ошибку. Вот мой способ решить проблему: просто замените значение программы
"${workspaceRoot}/app.js"
по
"${workspaceFolder}/${fileBasenameNoExtension}.js"
Надеюсь, это решит все ваши проблемы.
источник
Для тех, кто использует Visual Studio 2019 , сегодня я пробовал Node.js в «главном» VS2019. Я переместился
server.ts
вsrc
папку, чтобы мойjs
вывод находился вlib
папке.После этого я начал получать это сообщение. Вот изменения, которые я внес в свой файл проекта, чтобы он работал.
<StartupFile>lib\server.js</StartupFile> <WorkingDirectory>lib</WorkingDirectory> <OutputPath>lib</OutputPath>
Надеюсь, это не выходит за рамки темы, это может помочь пользователям VS IDE.
источник