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

"Программа" Атрибут "не существует" для базового проекта node.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
        }
    ]
}

И еще при запуске я вижу:

Атрибут "программа" не существует.

Может кто-нибудь помочь, что неправильно?

4b9b3361

Ответ 1

Я считаю, что вам нужно ${workspaceRoot}/server.js, а не ${workspaceRoot}/app.js для program. В коде, который вы используете, нет приложения app.js, о котором вам сообщает эта (плохо сформулированная) ошибка.

Ответ 2

Я также столкнулся с этой проблемой из-за того, где VS Code помещает каталог .vscode, содержащий файл launch.json. Он поместил его в один каталог, поэтому мне пришлось добавить каталог в путь, как определено в файле launch.json:

"program": "$ {workspaceRoot}/myDir/app.js",

Надеюсь, это поможет.

Ответ 3

Другая проблема, с которой я столкнулся, - это путь, который был настроен Using\\Backslashes\\Like\\So и отлично работал в Windows, но на Mac он дал указанную выше ошибку.

(Решение: изменено на /)

Ответ 4

Ошибка говорит о том, что путь к вашему коду был неверным.

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 "не существует".

Ответ 5

Сегодня я потратил несколько минут, пытаясь понять эту проблему. Что для меня работало, это удалить существующий launch.json и запустить приложение, которое предложит вам выбрать среду, которая в моем случае была Node. Это создало новый launch.json, в котором я обновил путь к программе.

Ответ 6

Я была такая же проблема. В моем случае мой launch.json имел следующую строку

"program": "${workspaceFolder}\\index.js"

Мой активный код, который я пытался отлаживать, был в app_v2.js, поэтому я обновил его до следующего, а затем отладка сработала.

"program": "${workspaceFolder}\\app_v2.js"

Ответ 7

У меня был тот же вопрос, и мне потребовалось пару часов, чтобы понять его. Что я в основном сделал, так это то, что я удалил папку после ${workspaceFolder}

Формат был ${workspaceFolder}/xxxx\\folder\\subfolder\\subfolder так что, удалив то, что после "workspaceFolder" и начав мой путь с двойной обратной косой черты, он исправил это для меня.

Ответ 8

В идеале ошибка должна читать "файл, указанный в программном атрибуте, не существует", потому что это то, что происходит. Начиная с VSCode 1.30.2, он показывает путь вместе с ошибкой.

В моем случае у меня было "program": "${workspaceFolder}\\${file}" поэтому путь был примерно таким c:\dir\c:\dir\file.js

Я исправил это, удалив ${workspaceFolder} так как хотел иметь возможность отлаживать отдельные файлы.