Nodemon - exclusion of files
Asked Answered
D

4

159

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']
        }
      }
Derinna answered 9/6, 2014 at 12:8 Comment(1)
I presume I should edit the .nodemon-ignore file in the root of the application...Derinna
S
290

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.

Scarface answered 9/6, 2014 at 12:19 Comment(5)
didnt' work for me, I needed to use path without simple-quotes: nodemon --ignore public/ build.js This is maybe due to french keyboard layout in windows...Physiography
not work for me to. but i use npx or npm script.mybbe that the reason,Schoolbag
On Windows quoting with single quotes does not work. Double quotes do work.Yoke
@LorenzMeyer, seemed to work fine with single quotes on powershell, at least for the first variant.Infante
This works for me in my package.json so it only restarts if I make changes to my server. "scripts": { "start": "nodemon --ignore public/*" }Caffeine
H
62

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

Heartwarming answered 12/5, 2018 at 5:34 Comment(3)
Couldn't get any version of --ignore to work but this did. Clean solution as well.Toothpaste
Can I get info on terminal which files/folders are excluded in nodemon? I just see Nico's answer, should helpStier
@Stier 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.Heartwarming
F
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

Festatus answered 11/1, 2019 at 17:10 Comment(0)
R
6

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"
  },
Rencontre answered 27/1, 2022 at 7:41 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.