기본 node.js 프로젝트의 "속성 '프로그램'이 존재하지 않습니다."


82

간단한 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
        }
    ]
}

그리고 여전히 시작되었을 때 나는 다음을 본다.

'프로그램'속성이 없습니다.

아무도 잘못된 것을 도울 수 있습니까?

답변:


73

난 당신이 필요하다고 생각 ${workspaceRoot}/server.js하지 ${workspaceRoot}/app.js위해 program. 사용중인 코드에 app.js가 없습니다. 바로 이것이 (잘못 표현 된) 오류가 알려주는 것입니다.


위는 정답입니다. 그것은 인 "program": "${workspaceRoot}/app.js",오류를 발생 라인; 이 줄에서 참조하는 js 파일이 없습니다.
Yiling

나는 이것이 옳다고 믿지 않는다. app.js에는 아무런 문제가 없지만 시도하지 않았지만 Colin 대답은 항상 제가하는 일입니다.
Tom Stickel

이 대답은 주어진 질문에 맞았습니다. 질문에 나열된 블로그 게시물은 파일 server.js을 시작 파일로 사용 합니다. 아마도 더 나은 대답했을 것이다 "는 program속성이 잘못된 파일을 가리키고"
mdickin

28

VS Code가 launch.json 파일이 포함 된 .vscode 디렉터리를 배치하기 때문에이 문제가 발생했습니다. 하나의 디렉토리에 배치되었으므로 launch.json 파일에 정의 된대로 경로에 디렉토리를 추가해야했습니다.

"프로그램": "$ {workspaceRoot} /myDir/app.js",

이게 도움이 되길 바란다.


다른 컴퓨터에서이 문제를 다시 겪으면서 제가 이전에했던 일을 잊어 버리고 귀하의 대답을보고 이것이 옳다는 것을 기억했기 때문에 정답이 있다고 믿습니다.
Tom Stickel 17.01.21

네, 작동했습니다! 이는 노드 프로젝트가 루트가 아닌 하위 폴더 (myDir)에 있고 .vscode 폴더 (launch.json이있는)가 루트에 생성 된 경우에 발생합니다.
Ajay Chebbi

14

내가 만난 또 다른 문제는 Using\\Backslashes\\Like\\SoWindows에서 경로가 구성 되고 제대로 작동했지만 Mac에서는 위의 오류가 발생했습니다.

(해결책 :로 변경 /)


1
네, 저를위한 것이 었습니다. Windows에서는 백 슬래시이지만 Raspbian에서는 슬래시가 필요했습니다.
John Mills

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" 은 실수이며 "속성 '프로그램'이 존재하지 않습니다"라는 오류가 발생합니다.


3

나는 오늘이 문제를 파악하기 위해 몇 시간을 허비했다. 나를 위해 일한 것은 기존 launch.json을 삭제하고 응용 프로그램을 실행하는 것이 었습니다.이 경우 환경을 선택하라는 메시지가 표시됩니다. 이것은 프로그램 경로를 업데이트 한 새로운 launch.json을 생성했습니다.


2

오류는 이상적으로 '프로그램 속성에 지정된 파일이 존재하지 않습니다'로 읽어야합니다. VSCode 1.30.2부터 오류와 함께 경로가 표시됩니다.

제 경우 "program": "${workspaceFolder}\\${file}"에는 경로가 다음과 같았습니다.c:\dir\c:\dir\file.js

${workspaceFolder}개별 파일을 디버깅 할 수 있기를 원했기 때문에 제거하여이를 수정했습니다 .


1

나는 같은 문제가 있었다. 제 경우에는 launch.json에 다음 줄이 있습니다.

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

디버그하려고 시도한 활성 코드는 app_v2.js에 있었으므로 다음으로 업데이트 한 다음 디버그가 작동했습니다.

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

1

먼저 .NET을 사용하여 다양한 시나리오에 적합한 속성을 설정하는 방법에 대한 모든 질문에 대한 답을 제공 하는 공식 문서를 읽으십시오 launch.json.

이제이 질문에 구체적으로 대답하기 위해 ${workspaceFolder}에 기본적으로 .vscode프로젝트 루트 디렉터리 인 디렉터리의 디렉터리가 포함됩니다. 따라서 특정 파일을 디버깅 프로그램으로 설정할 때 프로젝트 루트 디렉터리의 경로, 즉 디버깅 프로그램으로 설정할 파일의 상대 경로를 매핑해야합니다. IDE (VS 코드)에서 파일을 마우스 오른쪽 버튼으로 클릭하고 Copy Relative Path옵션을 선택하면 쉽게 얻을 수 있습니다 . 그런 다음 launch.json아래처럼 파일 의 프로그램 속성에있는 $ {workspaceFolder} 옆에 붙여 넣으면 문제가 해결됩니다.

"program": "${workspaceFolder}/<relative_path>"

앞에서 언급 한대로 상대 경로를 복사 한 상대 경로로 바꾸십시오. 제가 Mac 플랫폼을 사용하고 있습니다. 플랫폼에 적합한 경로 구분자를 사용하십시오.

또는 실행 구성 파일을 보증하지 않는 단순한 앱이나 프로덕션 용이 아닌 경우 실행 구성을 특별히 사용하지 않는 것이 좋습니다. 그러나 그렇지 않은 경우 다중 대상 환경 (서버, 클라이언트)에서 디버깅 할 때 매우 유용합니다. 제 생각에는 복합 실행 구성 설정을 사용하면 일이 훨씬 쉬워집니다. 공식 문서 의이 섹션 을 읽고 서버 및 클라이언트 파일의 상대 경로를 염두에두고 설정하는 방법을 알아보십시오.


0

나는 같은 질문을했고 그것을 알아내는 데 몇 시간이 걸렸다. 내가 기본적으로 한 것은 폴더를 삭제 한 후${workspaceFolder}

형식은 ${workspaceFolder}/xxxx\\folder\\subfolder\\subfolder "workspaceFolder"뒤의 내용을 삭제하고 이중 백 슬래시에서 내 경로를 시작하여 저를 위해 수정되었습니다.


0

다음과 같이 "프로그램"속성 내부에 인수를 전달했기 때문에 동일한 오류가 발생했습니다.

{
    "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"]
        }
    ]
}

OS는 Windows 7이었습니다.


0

단순히 파일을 디버깅 할 때 app.js 파일이 존재하지 않고 디버깅을 수행 할 때 오류가 표시됨을 의미합니다 . 문제를 해결하는 방법은 다음과 같습니다. 프로그램의 가치를 간단히 교체

"${workspaceRoot}/app.js"

으로

"${workspaceFolder}/${fileBasenameNoExtension}.js"

이것이 당신의 모든 문제를 해결하기를 바랍니다.


0

Visual Studio 2019를 사용하는 사람들을 위해 오늘 저는 "마스터"VS2019에서 Node.js를 사용해 보았습니다. 내 출력이 폴더에 있도록 폴더 로 이동 server.ts했습니다 .srcjslib

그 후 나는 그 메시지를 받았다. 다음은 작동하도록 프로젝트 파일에서 변경 한 사항입니다.

<StartupFile>lib\server.js</StartupFile>
<WorkingDirectory>lib</WorkingDirectory>
<OutputPath>lib</OutputPath>

이것이 주제에서 벗어난 것이 아니기를 바랍니다. VS IDE 사용자에게 도움이 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.