Ich habe eine einfache Anwendung node.js erstellt (Quellcode von hier 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);
Und geklickt VSCode generiert 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
}
]
}
Und noch beim Start sehe ich:
Das Attribut 'Programm' existiert nicht.
Kann jemand helfen, was los ist?
node.js
visual-studio-code
Valeriy
quelle
quelle
"program": "${workspaceRoot}/app.js",
Linie, die den Fehler verursacht; Die von dieser Zeile referenzierte js-Datei existiert nicht.server.js
als Startdatei. Vielleicht wäre eine bessere Antwort gewesen "dasprogram
Attribut zeigt auf die falsche Datei"Ich bin auch auf dieses Problem gestoßen, weil VS Code das .vscode-Verzeichnis mit der Datei launch.json abgelegt hat. Es wurde ein Verzeichnis erstellt, sodass ich das Verzeichnis dem Pfad hinzufügen musste, wie in der Datei launch.json definiert:
"program": "$ {workspaceRoot} /myDir/app.js",
Ich hoffe das hilft.
quelle
Ein weiteres Problem, auf das ich gestoßen bin, ist, dass ein Pfad unter
Using\\Backslashes\\Like\\So
Windows konfiguriert wurde und einwandfrei funktioniert hat, aber auf dem Mac wurde der obige Fehler ausgegeben.(Lösung: geändert zu
/
)quelle
Der Fehler besagt, dass der Pfad zu Ihrem Code falsch war.
VSCode definiert das übergeordnete Verzeichnis seiner Konfigurationsdatei ".vscode / launch.json" als "$ {workspaceRoot}" oder "$ {workspaceFolder}".
Wenn Sie beispielsweise die Datei "myproject / subfolder / main.js" ausführen möchten, sollten Sie "myproject / .vscode / launch.json" wie folgt konfigurieren:
"program": "${workspaceRoot}/subfolder/main.js"
Beachten Sie, dass die Konfiguration
"program": "${workspaceRoot}/myproject/subfolder/main.js"
ein Fehler ist und den Fehler "Attribut 'Programm' existiert nicht" verursacht.quelle
Ich habe heute ein paar Stunden damit verbracht, dieses Problem herauszufinden. Was für mich funktioniert hat, war das Löschen der vorhandenen Datei launch.json und das Ausführen der Anwendung, wodurch Sie aufgefordert werden, eine Umgebung auszuwählen, in meinem Fall Node. Dadurch wurde eine neue launch.json erstellt, in der ich den Programmpfad aktualisiert habe.
quelle
Der Fehler sollte idealerweise lauten: "Die im Programmattribut angegebene Datei existiert nicht", da dies der Fall ist. Ab VSCode 1.30.2 wird der Pfad zusammen mit dem Fehler angezeigt.
In meinem Fall hatte ich
"program": "${workspaceFolder}\\${file}"
so einen Weg wiec:\dir\c:\dir\file.js
Ich habe dies durch Entfernen korrigiert,
${workspaceFolder}
da ich einzelne Dateien debuggen wollte.quelle
Ich hatte das gleiche Problem. In meinem Fall hatte meine launch.json folgende Zeile
"program": "${workspaceFolder}\\index.js"
Mein aktiver Code, den ich zu debuggen versuchte, befand sich in app_v2.js. Daher habe ich ihn auf den folgenden Code aktualisiert und dann hat das Debuggen funktioniert.
"program": "${workspaceFolder}\\app_v2.js"
quelle
Lesen Sie zunächst das offizielle Dokument, in dem alle Fragen beantwortet werden, die Sie zum Festlegen der richtigen Attribute für verschiedene Szenarien haben
launch.json
.Um diese Frage speziell zu beantworten,
${workspaceFolder}
enthält das.vscode
Verzeichnis im Wesentlichen das Verzeichnis, das Ihr Projektstammverzeichnis ist. Denken Sie also beim Festlegen bestimmter Dateien als Debugging-Programm daran, den Pfad aus dem Projektstammverzeichnis oder mit anderen Worten den relativen Pfad der Datei zuzuordnen, die als Debugging-Programm festgelegt werden soll. Dies kann einfach über die IDE (VS-Code) abgerufen werden, indem Sie einfach mit der rechten Maustaste auf die Datei klicken und dieCopy Relative Path
Option auswählen . Fügen Sie dies dann neben $ {workspaceFolder} in das Programmattribut Ihrerlaunch.json
Datei ein (siehe unten), um das Problem zu beheben."program": "${workspaceFolder}/<relative_path>"
Ersetzen Sie den relativen Pfad durch Ihren kopierten relativen Pfad, wie zuvor erwähnt. Beachten Sie, dass ich mich auf einer Mac-Plattform befinde. Bitte verwenden Sie plattformgerechte Pfadtrennzeichen
Alternativ ist es nicht sinnvoll, eine Startkonfiguration nicht speziell zu verwenden, wenn es sich um eine nicht für die Produktion bestimmte App oder eine einfache App handelt, für die keine Startkonfigurationsdatei erforderlich ist. Wenn nicht, ist es jedoch sehr nützlich, wenn Sie in einer Umgebung mit mehreren Zielen (Server, Client) debuggen. Meiner Meinung nach erleichtert die Verwendung eines zusammengesetzten Startkonfigurations-Setups die Arbeit erheblich. Lesen Sie diesen Abschnitt der offiziellen Dokumente, um zu erfahren, wie Sie ihn unter Berücksichtigung der relativen Pfade Ihrer Server- und Client-Dateien einrichten.
quelle
Ich hatte die gleiche Frage und brauchte ein paar Stunden, um sie herauszufinden. Im Grunde habe ich den Ordner danach gelöscht
${workspaceFolder}
Das Format war
${workspaceFolder}/xxxx\\folder\\subfolder\\subfolder
so, dass es für mich behoben wurde , indem das, was nach dem "workspaceFolder" steht, gelöscht und mein Pfad vom doppelten Schrägstrich nach hinten gestartet wurde.quelle
Ich hatte den gleichen Fehler, weil ich die Argumente im Attribut "program" wie folgt übergeben habe:
{ "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" } ] }
Was für mich gelöst wurde, war, die Argumente innerhalb des Attributs "args" wie folgt zu übergeben:
{ "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"] } ] }
Das Betriebssystem war Windows 7.
quelle
Dies bedeutet einfach, dass beim Debuggen der Datei die Datei app.js einfach nicht vorhanden ist und beim Debuggen der Fehler angezeigt wird. Hier ist meine Art, das Problem zu beheben: Ersetzen Sie einfach den Wert des Programms
"${workspaceRoot}/app.js"
durch
"${workspaceFolder}/${fileBasenameNoExtension}.js"
Ich hoffe, dies wird alle Ihre Probleme lösen.
quelle
Für diejenigen, die Visual Studio 2019 verwenden , habe ich heute Node.js im "Master" VS2019 ausprobiert. Ich bin in
server.ts
densrc
Ordner verschoben , damit sich meinejs
Ausgabe imlib
Ordner befindet.Danach fing ich an, diese Nachricht zu bekommen. Hier sind die Änderungen, die ich in meiner Projektdatei vorgenommen habe, damit sie funktioniert.
<StartupFile>lib\server.js</StartupFile> <WorkingDirectory>lib</WorkingDirectory> <OutputPath>lib</OutputPath>
Ich hoffe, dass dies nicht unangebracht ist, es könnte VS IDE-Benutzern helfen.
quelle