Main entry point does not exist
If you get an error in the deploy log that says that your package.json points to a file that does not exist, here is how to fix it.
Error message
ERROR: The main entry point defined in package.json 'index.js' does not exist.
https://docs.npmjs.com/cli/v8/configuring-npm/package-json#main
"main": "index.js"
To fix do the following:
- update the entry in package.json that points to the correct file:
"main":"./some_folder/some_file.js",
Solution
Cyclic launches your code by running node .. By default this will look for a main entry in your package.json. If that entry does not exist it will then default to server.js.
Either you can define a main entry that points to your entry point - for example:
{
"main": "src/index.js",
...
}
Or, you can ensure the entry point to your Express application is a server.js file in the root directory.
Why does this happen?
By default when you run npm init it creates a main entry in package.json which points to index.js. Most frameworks init their entry points in files other than index.js in the root directory. Hence the mismatch in default behavior.