Stworzyłem prostą aplikację node.js (kod źródłowy stąd 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);
I kliknąłem plik launch.json wygenerowany przez VSCode:
{
"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
}
]
}
A po uruchomieniu widzę:
Atrybut „program” nie istnieje.
Czy ktoś może pomóc, co się stało?
node.js
visual-studio-code
Valeriy
źródło
źródło
"program": "${workspaceRoot}/app.js",
linia powodująca błąd; plik js, do którego odwołuje się ten wiersz, nie istnieje.server.js
jako pliku startowego. Być może lepszą odpowiedzią byłoby „program
atrybut wskazuje na niewłaściwy plik”Napotkałem również ten problem z powodu miejsca, w którym VS Code umieścił katalog .vscode zawierający plik launch.json. Umieściło go w jednym katalogu, więc musiałem dodać katalog do ścieżki zdefiniowanej w pliku launch.json:
"program": "$ {workspaceRoot} /myDir/app.js",
Mam nadzieję, że to pomoże.
źródło
Innym problemem, na który się natknąłem, jest ścieżka została skonfigurowana
Using\\Backslashes\\Like\\So
i działała dobrze w systemie Windows, ale na Macu dała powyższy błąd.(Rozwiązanie: zmieniono na
/
)źródło
Błąd mówi, że ścieżka do twojego kodu była nieprawidłowa.
VSCode definiuje katalog nadrzędny swojego pliku konfiguracyjnego „.vscode / launch.json” jako „$ {workspaceRoot}” lub „$ {workspaceFolder}”.
Na przykład, jeśli chcesz uruchomić plik „myproject / subfolder / main.js”, powinieneś skonfigurować swój „myproject / .vscode / launch.json” w następujący sposób:
"program": "${workspaceRoot}/subfolder/main.js"
Zauważ, że konfiguracja
"program": "${workspaceRoot}/myproject/subfolder/main.js"
jest błędem i spowoduje błąd „Atrybut„ program ”nie istnieje”.źródło
Zmarnowałem dziś kilka godzin, próbując rozwiązać ten problem. U mnie zadziałało usunięcie istniejącego pliku launch.json i uruchomienie aplikacji, która wyświetla monit o wybranie środowiska, którym w moim przypadku był Node. Stworzyło to nowy plik launch.json, w którym zaktualizowałem ścieżkę programu.
źródło
Najlepiej byłoby, gdyby błąd brzmiał „plik określony w atrybucie programu nie istnieje”, ponieważ tak właśnie się dzieje. Od wersji VSCode 1.30.2 pokazuje ścieżkę wraz z błędem.
W moim przypadku
"program": "${workspaceFolder}\\${file}"
tak miałem, więc ścieżka była jakośc:\dir\c:\dir\file.js
Poprawiłem to, usuwając,
${workspaceFolder}
ponieważ chciałem mieć możliwość debugowania poszczególnych plików.źródło
Miałem ten sam problem. W moim przypadku mój launch.json miał następujący wiersz
"program": "${workspaceFolder}\\index.js"
Mój aktywny kod, który próbowałem debugować, znajdował się w app_v2.js, więc zaktualizowałem go do następującego, a następnie debugowanie działało.
"program": "${workspaceFolder}\\app_v2.js"
źródło
Po pierwsze, przeczytaj oficjalny dokument, który zawiera odpowiedzi na wszystkie pytania, które możesz mieć na temat ustawiania odpowiednich atrybutów dla różnych scenariuszy
launch.json
.Aby konkretnie odpowiedzieć na to pytanie, w
${workspaceFolder}
zasadzie zawiera katalog.vscode
katalogu, który jest katalogiem głównym twojego projektu. Tak więc, ustawiając określone pliki jako program do debugowania, pamiętaj, aby odwzorować ścieżkę z katalogu głównego projektu, czyli innymi słowy, ścieżkę względną pliku, który ma być ustawiony jako program debugujący. Można to łatwo uzyskać z IDE (VS Code), po prostu klikając plik prawym przyciskiem myszy i wybierającCopy Relative Path
opcję. Następnie wkleić to obok $ {workspaceFolder} w atrybucie programu wlaunch.json
pliku, jak poniżej, rozwiąże problem."program": "${workspaceFolder}/<relative_path>"
Zastąp ścieżkę względną skopiowaną ścieżką względną, jak wspomniano wcześniej. Zauważ, że pracuję na platformie Mac. Użyj separatorów ścieżek odpowiednich dla platformy
Alternatywnie, nie używanie konkretnie konfiguracji uruchamiania ma sens, jeśli jest to aplikacja nieprzeznaczona do produkcji lub prosta aplikacja, która nie gwarantuje uruchomienia pliku konfiguracyjnego. Jeśli jednak nie, jest to bardzo przydatne podczas debugowania w środowisku z wieloma celami (serwer, klient). Moim zdaniem użycie złożonej konfiguracji uruchamiania znacznie ułatwia sprawę. Przeczytaj tę sekcję oficjalnej dokumentacji, aby dowiedzieć się, jak to skonfigurować, pamiętając o względnych ścieżkach serwera i plików klienta.
źródło
Miałem to samo pytanie i zajęło mi to kilka godzin. Zasadniczo zrobiłem, że później usunąłem folder
${workspaceFolder}
Format był
${workspaceFolder}/xxxx\\folder\\subfolder\\subfolder
taki, usuwając to, co znajduje się za „workspaceFolder” i rozpoczynając moją ścieżkę od podwójnego ukośnika w tył, naprawił to za mnie.źródło
Miałem ten sam błąd, ponieważ przekazywałem argumenty wewnątrz atrybutu „program” w następujący sposób:
{ "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" } ] }
Rozwiązaniem dla mnie było przekazanie argumentów wewnątrz atrybutu „args”, na przykład:
{ "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"] } ] }
System operacyjny to Windows 7.
źródło
Oznacza to po prostu, że podczas debugowania pliku plik app.js po prostu nie istnieje, a podczas debugowania wyświetla błąd. Tutaj jest mój sposób na rozwiązanie problemu: po prostu zastąp wartość programu
"${workspaceRoot}/app.js"
przez
"${workspaceFolder}/${fileBasenameNoExtension}.js"
Mam nadzieję, że to rozwiąże wszystkie Twoje problemy.
źródło
Dla tych, którzy używają Visual Studio 2019 , dzisiaj wypróbowałem Node.js w „głównym” VS2019. Przeniosłem
server.ts
się dosrc
folderu, aby mojejs
dane wyjściowe były wlib
folderze.Potem zacząłem otrzymywać tę wiadomość. Oto zmiany, które wprowadziłem w pliku projektu, aby działał.
<StartupFile>lib\server.js</StartupFile> <WorkingDirectory>lib</WorkingDirectory> <OutputPath>lib</OutputPath>
Mam nadzieję, że to nie jest poza tematem, mogłoby to pomóc użytkownikom VS IDE.
źródło