149

I would like to exclude some specific files from monitoring of NodeMon. How can I do this?

My existing configuration:

nodemon: {
      all: {
        script: 'app.js',
        options: {
          watchedExtensions: ['js']
        }
      }
Ben Aston
  • 53,718
  • 65
  • 205
  • 331

4 Answers4

272

In order to make NodeMon ignore a bunch of files from monitoring, you can start it as

nodemon --ignore PATTERN [--ignore PATTERN2]

where PATTERN is the name of a specific file, directory, or wildcard pattern. Make sure that if you use a wildcard, it is escaped.

For example

nodemon --ignore 'lib/*.js' --ignore README

Alternatively, if you want to configure that behaviour instead, try creating a nodemon.json file in your current working directory, or your home directory. You can configure ignoring some files by adding something like the following to this config file:

{   
    "ignore": ["lib/*.js", "README"] 
}

Refer the README file at https://github.com/remy/nodemon for more details.

Marcus Hammarberg
  • 4,762
  • 1
  • 31
  • 37
Rohit Jain
  • 2,994
  • 1
  • 18
  • 14
60

You can add nodemon configuration within package.json file For example:

{
  "name": "nlabel",
  "version": "0.0.1",
   // other regular stuff


  "nodemonConfig": {
    "ignore": ["public/data/*.json", "public/javascripts/*.js"]
  },


  "author": "@sziraqui",
  "license": "GPL-3.0"
}

The key must be "nodemonConfig". Ignore rules can be specified as array of globs or complete filenames

More info: https://github.com/remy/nodemon#packagejson

sziraqui
  • 5,763
  • 3
  • 28
  • 37
  • 2
    Couldn't get any version of `--ignore` to work but this did. Clean solution as well. – J.G.Sebring Nov 21 '19 at 10:39
  • Can I get info on terminal which files/folders are excluded in `nodemon`? I just see Nico's answer, should help – Timo May 15 '21 at 18:36
  • @Timo Couldn't find any nodemon config for your use case. You can use `ls 'your exlusions' && nodemon app.js` (not cross platform). If you are willing to write code for it, you can listen to nodemon 'start' or 'restart' event and print excluded files by reading nodemon config and expanding glob patterns in "ignore" array. – sziraqui May 18 '21 at 19:38
13

For me (Mac and nodemon 1.18.3), the only way to ignore entire directories is to run e.g.

nodemon --ignore "**/old/**"

with the double quote and **. The config file won't work.

I have set up an alias like this:

alias nm='nodemon server.js -i "**/old/**" -i "**/img/**"'

Check what files are monitored by running

DEBUG=nodemon:watch nodemon server.js -i "**/old/**" -i "**/img/**"

-i is an alternative to --ignore. Check out the available parameters with nodemon --help

Nico
  • 4,248
  • 1
  • 20
  • 19
5

If like me nothing is working for you, follow my instructions.

Do not use the '' around your path('login.json' is wrong for example)

And CTRL + S won't suffice, you need to close the terminal and use the command npm run devStart AGAIN if you want your changes to take place in your packages.json

  "scripts": {
    "devStart": "nodemon server.js --ignore login.json"
  },
CrazyTard1990
  • 125
  • 2
  • 6