5

My Nodemon kept start and looking for index.js, but I want to use app.js as most people now use app.js.

enter image description here

How do I update my nodemon to look for app.js instead ?

I tried to uninstall, reinstall is not help.


⚡️  vidjot  nodemon
[nodemon] 1.17.3
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js`
module.js:540
    throw err;
    ^

Error: Cannot find module '/Users/bheng/Sites/vidjot/index.js'
    at Function.Module._resolveFilename (module.js:538:15)
    at Function.Module._load (module.js:468:25)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3
[nodemon] app crashed - waiting for file changes before starting...

package.json

{
  "name": "vidjot",
  "version": "1.0.0",
  "description": "app to create video idea",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.3"
  }
}
code-8
  • 54,650
  • 106
  • 352
  • 604

4 Answers4

10

Nodemon command search for the main property at you package.json file and tries to execute it's file. Example:

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "henriquelborges",
  "license": "ISC"
}

You can change "main": index.js" to "main": "app.js". Or you can run "nodemon filename" to specify the entry file. What I usually do is add scripts to my package.json. Example:

"scripts": {
    "start": "node app.js",
    "test": "nodemon app.js"
},

After this I just use commands like "npm start" or "npm test" at my project root folder. Cloud application platforms like Heroku needs "npm start" at your package.json in order to execute your app. Adding npm commands to your projects is also useful in case you need to load other npm modules from command line.

Example - you can load your environment variables to test your app at localhost with:

"test": "nodemon -r dotenv/config app.js dotenv_config_path=./config.env"

Henrique Borges
  • 479
  • 6
  • 15
2

As stated in nodemon documentation, you just have to specify the entrypoint of your application in argument:

nodemon ./app.js

Or you can specify it in your package.json file:

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "henriquelborges",
  "license": "ISC"
}
NayoR
  • 702
  • 6
  • 13
1

it should be app.js instead index.js as:

...
"main": "app.js",
...
Anshuman Jaiswal
  • 5,352
  • 1
  • 29
  • 46
0

you should edit main value in the package.json :

change:

{
...
"main":"index.js"
...
}

to:

{
...
 "main":"app.js"
...
}