Let's say we do require('./awesome-module')
.
The resolution order is following:
./awesome-module
./awesome-module.js
./awesome-module.json
./awesome-module.node
./awesome-module/index.js
./awesome-module/index.json
./awesome-module/index.node
- THROW "not found"
In case if we just do require('awesome-module')
(only module name) it will try to find the module within
./node_modules/awesome-module
../node_modules/awesome-module
- will go into parent directory ...<root_folder>/node_modules/awesome-module
- THROW "not found"
More detailed explanation can be found here https://github.com/nodejs/node/blob/master/doc/api/modules.md#all-together