2017-03-16 4 views
3

Visual Studio 코드 & 꿀꺽 꿀꺽 사용하여 타이프 스크립트 기반의 빠른 응용 프로그램 워크 플로를 설정하려고합니다.vscode가 노드 응용 프로그램을 시작할 수 없습니다.

Heres는 내 프로젝트 구조 : 다음과 같은 일련의 명령을 수행

src/ <-- souce files 
    Start.ts 
    Server.ts 
    models/ 
    Contact.ts 
    Organization.ts 
bin/ <-- compiled output 
    Start.js 
    Start.js.map 
    ... 
tsconfig.json 
gulpfile.json 
package.json 
.vscode/ 
    launch.json 

, 나는 통합 단말기에 & 출시 내 응용 프로그램을 컴파일 할 수

> tsc 
> node --debug-brk ./bin/Start.js 

을이 시점에서, 나는 성공적으로 연결할 수 있습니다 "프로세스에 연결"명령을 사용하여 내 응용 프로그램에 연결하고 (심지어 타이프 스크립트 파일의 중단 점을 올바르게 입력해도 yeyy!) :

{ 
    "type": "node", 
    "request": "attach", 
    "name": "Attach to Process", 
    "address": "localhost", 
    "port": 5858 
} 

그러나 때마다 F5으로 시작하면, 으로 시작하지 않습니다. 이 디버그 콘솔에 출력이없고, 몇 초에 나는 여기 (launch.json에서) 내 실행 구성의 Cannot connect to runtime via 'legacy' protocol; consider using 'inspector' protocol (timeout after 10000 ms).

말을 상단에 오류 배너 얻을 : 나는 개방을 시도

{ 
    "type": "node", 
    "request": "launch", 
    "name": "Launch Program", 

    // Using compiled .js file. vscode should use the sourcemap to correlate 
    // with breakpoints in the source file 
    "program": "${workspaceRoot}/bin/Start.js", 
    "outFiles": [ "${workspaceRoot}/bin/**/*.js" ] 
} 

을 디버그 콘솔. 나는 launch.json 파일을 저장할 때마다, 그것은 나에게 다음과 같은 오류를 제공합니다 : Cannot read property '_runner' of undefined: TypeError: Cannot read property '_runner' of undefined

shell.ts:426에서 오류를 인터넷 검색, 나는이 버그는 무엇을 의미 하는가 this bug

우연히 만났다? 거기에 대한 해결 방법이 있습니까? 무엇을해야합니까?

답변

1

작은 것들이 항상 가장 큰 문제를 일으 킵니다.

문제는 "프로그램 실행"작업 대신 "디버그 모드 드롭 다운"에서 "프로세스에 연결"작업을 선택했다는 것입니다. 따라서 F5을 누르면 vscode가 새로운 프로세스를 시작하지 않고 이미 실행중인 프로세스에 연결하려고했습니다.

** facepalm **

0

내가 뭘 버그 수단을 알려하지만 난 당신에게 유사한 환경에서 나를 위해 작동 발사 구성의 예를 줄 것이다 아래 캔트 :

{ 
     // Name of configuration; appears in the launch configuration drop down menu. 
     "name": "Launch Server", 
     // Type of configuration. 
     "type": "node2", 
     // Workspace relative or absolute path to the program. 
     "program": "${workspaceRoot}/server/app.ts", 
     // Automatically stop program after launch. 
     "stopOnEntry": false, 
     // Command line arguments passed to the program. 
     "args": [], 
     // Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace. 
     "cwd": "${workspaceRoot}", 
     // Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH. 
     "runtimeExecutable": null, 
     // Optional arguments passed to the runtime executable. 
     "runtimeArgs": ["--nolazy"], 
     // Environment variables passed to the program. 
     "env": { 
      "NODE_ENV": "development" 
     }, 
     // Use JavaScript source maps (if they exist). 
     "sourceMaps": true, 
     "request": "launch", 
     "outFiles": [ 
      "${workspaceRoot}/dist/dev/*/*.js" 
     ]   
    } 

참고로 설정되어 type의 차이를 node2program은 js 대신 ts를 가리 킵니다.

희망이 도움이 될 수 있습니다.

+0

'node2'의 의미는 무엇입니까? – Julien

+0

특별한 것은 없습니다 : https://marketplace.visualstudio.com/items?itemName=ms-vscode.node-debug2 '이상한'경우에 도움이되었지만 최신 VSCode가 있으면 node2가 사용되지 않습니다 자동으로 전환 : https://code.visualstudio.com/updates/v1_10#_node2-transitioning – Amid