From 594dd4242b99824d44b2b0f17421fa86c10f1d12 Mon Sep 17 00:00:00 2001 From: TomCoded Date: Wed, 22 Aug 2018 16:28:18 -0700 Subject: [PATCH] doc: clarify fallback behavior of module require PR-URL: https://github.com/nodejs/node/pull/22494 Fixes: https://github.com/nodejs/node/issues/22464 Reviewed-By: Anna Henningsen Reviewed-By: George Adams --- doc/api/modules.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/api/modules.md b/doc/api/modules.md index bdff1ab1f17351..f7934706d6b0de 100644 --- a/doc/api/modules.md +++ b/doc/api/modules.md @@ -352,15 +352,8 @@ If this was in a folder at `./some-library`, then This is the extent of Node.js's awareness of `package.json` files. -If the file specified by the `'main'` entry of `package.json` is missing and -can not be resolved, Node.js will report the entire module as missing with the -default error: - -```txt -Error: Cannot find module 'some-library' -``` - -If there is no `package.json` file present in the directory, then Node.js +If there is no `package.json` file present in the directory, or if the +`'main'` entry is missing or cannot be resolved, then Node.js will attempt to load an `index.js` or `index.node` file out of that directory. For example, if there was no `package.json` file in the above example, then `require('./some-library')` would attempt to load: @@ -368,6 +361,13 @@ example, then `require('./some-library')` would attempt to load: * `./some-library/index.js` * `./some-library/index.node` +If these attempts fail, then Node.js will report the entire module as missing +with the default error: + +```txt +Error: Cannot find module 'some-library' +``` + ## Loading from `node_modules` Folders