2017-03-16 14 views
3

Visual Studioコード& gulpを使用して、typescriptベースのエクスプレスアプリワークフローを設定しようとしています。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 

この時点で、私は正常に添付することができますデフォルトの「attach to process」コマンドを使用して私のアプリにアクセスします(そして、typescriptファイル内のブレークポイントにも正しくyeyyヒットします):

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

しかしF5打ち上げは毎回を失敗します。そこデバッグコンソールには出力されない、と私はCannot connect to runtime via 'legacy' protocol; consider using 'inspector' protocol (timeout after 10000 ms).

を言っ上部にエラーバナーを取得数秒でここ(launch.jsonで)私の起動設定です:

{ 
    "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の違いに注意してください。 node2およびprogramは、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

関連する問題