2016-10-09 24 views
0

現在、次のスクリプトを使用してnodejsアプリケーションを起動しています。私はその後、それにvscodeのデバッガをアタッチこれは動作します:

"dev": "NODE_PATH=\"$(pwd)\" NODE_ENV=development nodemon -r babel-register -r babel-polyfill --nolazy --debug-brk=36598 ./src/index.js" 

私はしかしvscodeに作り付けの「起動」オプションを使用したいと思います。

設定の下のlaunch.jsonには、envというフィールドがあります。私は現在のディレクトリに値を設定するNODE_PATHを追加したいと思います。ここ

{ 
    "name": "Launch", 
    "type": "node", 
    "request": "launch", 
    "program": "${workspaceRoot}/src/index.js", 
    "stopOnEntry": false, 
    "args": [], 
    "cwd": "${workspaceRoot}", 
    "preLaunchTask": null, 
    "runtimeExecutable": null, 
    "runtimeArgs": [ 
     "-r", 
     "babel-register", 
     "-r", 
     "babel-polyfill", 
     "--nolazy" 
    ], 
    "env": { 
     "NODE_ENV": "development", 
     "NODE_PATH": "$(pwd)" // <--- here 
    }, 
    "console": "internalConsole", 
    "sourceMaps": false, 
    "outDir": null 
} 

問題は、変数がなく、実際にコマンドとして実行し、出力を保存する「$(PWD)」に設定されていることです。

私は自分のコードに次き:

console.log(process.env.NODE_PATH); 

それは、(代わりに現在のディレクトリパスの)次を出力します

$(pwd) // <--- wrong, I was expecting '/home/karl/dev/my_project' 

私はruntimeArgsとargsで​​を設定するが、試してみましたそれはどちらもうまくいかない。

アイデア?

答えて

0

あなたは${cwd}を使用することができます - タスクのランナーの現在の作業ディレクトリを起動時に、あなたのケースでそうVS Code Variable substitution

に指定されているよう

"NODE_PATH": "${cwd}" 
0

{

"version": "0.2.0", 
"configurations": [ 
    { 
     "type": "node", 
     "request": "launch", 
     "name": "Launch Program", 
     "program": "/Path_to_start_file/main.js", 
     "env":{ 
      "NODE_PATH": "/Path_to_node_modules/node_modules" 
     } 
    } 
] } 

これは、私のためにm。

関連する問題