Can Visual Studio Code be configured to launch with nodemon

Mickel Sierra picture Mickel Sierra · Dec 24, 2015 · Viewed 34.5k times · Source

I have installed nodemon as a global package in my system. It works when I executed nodemon in cmd.

But when I am using vscode with this launch.json file, vscode throws this exception:

request launch: runtime executable XXX\XXX\XXX\XXX\nodemon does not exists

the launch.json is:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Launch",
        "type": "node",
        "request": "launch",
        "program": "app.js",
        "stopOnEntry": false,
        "args": [],
        "cwd": ".",
        "runtimeExecutable": nodemon,
        "runtimeArgs": [
            "--nolazy"
        ],
        "env": {
            "NODE_ENV": "development"
        },
        "externalConsole": false,
        "preLaunchTask": "",
        "sourceMaps": false,
        "outDir": null
    },
    {
        "name": "Attach",
        "type": "node",
        "request": "attach",
        "port": 5858
    }
]
}

when I erase the nodemin in runtimeExecutable it runs perfectly with node

Answer

Adrian T picture Adrian T · Jul 19, 2016

First, install nodemon as a dev dependency:

npm install --save-dev nodemon

For newer versions of VS Code set up your .vscode/launch.json file like this:

{
    "version": "0.2.0",
    "configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "nodemon",
        "runtimeExecutable": "${workspaceFolder}/node_modules/nodemon/bin/nodemon.js",
        "program": "${workspaceFolder}/app.js",
        "restart": true,
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen"
    }]
}

The most important pieces are the runtimeExecutable property that points to the nodemon script and the program property that points to your entry point script.

If you use an older VS Code (which you shouldn't), try this launch configuration:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch with nodemon",
      "type": "node",
      "request": "launch",
      "program": "${workspaceRoot}/node_modules/nodemon/bin/nodemon.js",
      "args": ["${workspaceRoot}/app.js"],
      "runtimeArgs": ["--nolazy"]
    }
  ]
}

The most important pieces are the program property that points to the nodemon script and the args property that points to your normal entry point script.