Skip to content

Ignore "./*.json" should ignore json files from current working directory #1784

Closed
@piotrminkina

Description

@piotrminkina

Hello,

Thanks for great software :) I noticed a problem with ignore files from current working directory. Nodeman restarts my application unexpectedly despite ignore "./*.json".

  • nodemon -v: 2.0.5
  • node -v: v12.18.4
  • Operating system/terminal environment: Ubuntu 20.04.1 LTS on Kernel 5.4.0-51-generic
  • Using Docker? What image: andyrbell/mountebank:2.3.2 with added RUN npm install -g nodemon to local Dockerfile
  • Command you ran: nodemon --verbose config.json.ejs

nodeman.json

{
  "_comment": "See https://github.com/remy/nodemon",
  "ext": "js,json,ejs",
  "ignore": [
    "var/",
    "./*.json"
  ],
  "execMap": {
    "ejs": "mb start --logfile=var/mb.log --pidfile=var/mb.pid --allowInjection --debug --configfile"
  }
}

Expected behaviour

touch anyfile.json — nodeman should ignore this change
touch any-not-ignored-dir/anyfile.json — nodeman restarts mountebank as expected

Actual behaviour

touch anyfile.json — nodeman restarts mountebank unexpectedly

Logs present the problem

mountebank_1  | [nodemon] 2.0.5
mountebank_1  | [nodemon] reading config ./nodemon.json
mountebank_1  | [nodemon] to restart at any time, enter `rs`
mountebank_1  | [nodemon] or send SIGHUP to 1 to restart
mountebank_1  | [nodemon] ignoring: ./var/**/* ./*.json
mountebank_1  | [nodemon] watching path(s): *.*
mountebank_1  | [nodemon] watching extensions: js,json,ejs
mountebank_1  | [nodemon] starting `mb start --logfile=var/mb.log --pidfile=var/mb.pid --allowInjection --debug --configfile config.json.ejs`
mountebank_1  | [nodemon] spawning
mountebank_1  | [nodemon] child pid: 17
mountebank_1  | [nodemon] watching 6 files
mountebank_1  | warn: [mb:2525] Running with --allowInjection set. See http://localhost:2525/docs/security for security info
mountebank_1  | info: [mb:2525] mountebank v2.3.2 now taking orders - point your browser to http://localhost:2525/ for help
mountebank_1  | info: [mb:2525] PUT /imposters
mountebank_1  | info: [https:8443 nokia-altiplano] Open for business...

Now I'm execute this command: touch anyfile.json (nodeman restarts mountebank unexpectedly)

mountebank_1  | [nodemon] files triggering change check: anyfile.json
mountebank_1  | [nodemon] matched rule: **/*.*
mountebank_1  | [nodemon] changes after filters (before/after): 1/1
mountebank_1  | [nodemon] restarting due to changes...
mountebank_1  | [nodemon] anyfile.json
mountebank_1  | 
mountebank_1  | [nodemon] starting `mb start --logfile=var/mb.log --pidfile=var/mb.pid --allowInjection --debug --configfile config.json.ejs`
mountebank_1  | [nodemon] spawning
mountebank_1  | [nodemon] child pid: 37
mountebank_1  | warn: [mb:2525] Running with --allowInjection set. See http://localhost:2525/docs/security for security info
mountebank_1  | info: [mb:2525] mountebank v2.3.2 now taking orders - point your browser to http://localhost:2525/ for help
mountebank_1  | info: [mb:2525] PUT /imposters
mountebank_1  | info: [https:8443 nokia-altiplano] Open for business...

Now I'm execute this command: touch any-not-ignored-dir/anyfile.json (nodeman restarts mountebank as expected)

mountebank_1  | [nodemon] files triggering change check: any-not-ignored-dir/anyfile.json
mountebank_1  | [nodemon] matched rule: **/*.*
mountebank_1  | [nodemon] changes after filters (before/after): 1/1
mountebank_1  | [nodemon] restarting due to changes...
mountebank_1  | [nodemon] any-not-ignored-dir/anyfile.json
mountebank_1  | 
mountebank_1  | [nodemon] starting `mb start --logfile=var/mb.log --pidfile=var/mb.pid --allowInjection --debug --configfile config.json.ejs`
mountebank_1  | [nodemon] spawning
mountebank_1  | [nodemon] child pid: 52
mountebank_1  | warn: [mb:2525] Running with --allowInjection set. See http://localhost:2525/docs/security for security info
mountebank_1  | info: [mb:2525] mountebank v2.3.2 now taking orders - point your browser to http://localhost:2525/ for help
mountebank_1  | info: [mb:2525] PUT /imposters
mountebank_1  | info: [https:8443 nokia-altiplano] Open for business...

Regards
Piotr Minkina

Activity

remy

remy commented on Oct 17, 2020

@remy
Owner

What happens if you remove json from the ext list?

piotrminkina

piotrminkina commented on Oct 18, 2020

@piotrminkina
Author

When I remove json from ext list, then the following results will happen:

touch anyfile.json emits the following logs:

mountebank_1  | [nodemon] files triggering change check: anyfile.json
mountebank_1  | [nodemon] matched rule: **/*.*
mountebank_1  | [nodemon] changes after filters (before/after): 1/0

touch any-not-ignored-dir/anyfile.json emits the following logs:

mountebank_1  | [nodemon] files triggering change check: any-not-ignored-dir/anyfile.json
mountebank_1  | [nodemon] matched rule: **/*.*
mountebank_1  | [nodemon] changes after filters (before/after): 1/0

Summing up, all JSON files are ignored by nodemon.

Regards
Piotr Minkina

remy

remy commented on Oct 19, 2020

@remy
Owner

Oh, to try to clarify, are you trying to ignore json files in the CWD, but still watch json files that are nested further down?

added a commit that references this issue on Oct 19, 2020
6c7fddd
piotrminkina

piotrminkina commented on Oct 19, 2020

@piotrminkina
Author

Exactly. This is because mb save by default creates mb.json at current working directory, so without ignore ./*.json mountebank will be restarted by nodemon unexpectedly (e.g. all in memory data, including state will be lost).

added a commit that references this issue on Oct 19, 2020
03c4ed3
remy

remy commented on Oct 19, 2020

@remy
Owner

This fix has been merged into master and is being built and deployed now. Look out for the next version shortly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @remy@piotrminkina

      Issue actions

        Ignore "./*.json" should ignore json files from current working directory · Issue #1784 · remy/nodemon