Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nodemon kept looking for index.js

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"
  }
}
like image 506
code-8 Avatar asked Dec 10 '22 07:12

code-8


1 Answers

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"

like image 54
Henrique Borges Avatar answered Jan 14 '23 23:01

Henrique Borges