在vscode中调试时如何将NODE_PATH设置为$(pwd)

时间:2016-10-09 18:16:44

标签: node.js visual-studio-code

我目前正在使用以下脚本来启动我的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
}

这里的问题是变量实际设置为&#34; $(pwd)&#34;而不是将其作为命令运行并保存输出。

当我的代码中包含以下内容时:

console.log(process.env.NODE_PATH);

它输出以下内容(而不是当前目录路径):

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

我尝试在runtimeArgs和args中设置"NODE_PATH=\"$(pwd)\"",,但这也不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

  

{

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

这解决了我的问题。

答案 1 :(得分:0)

您可以使用${cwd} - 启动时任务运行器的当前工作目录,如上所述 VS Code Variable substitution

所以在你的情况下

"NODE_PATH": "${cwd}"

答案 2 :(得分:0)

您还可以尝试“ runtimeExecutable”:“您的/路径/到/ bin /节点”