Skip to content

Commit

Permalink
doc: fix modules require.resolve documentation
Browse files Browse the repository at this point in the history
The behavior of the `node_modules` lookup algorithm was
changed in nodejs#1177, but the documentation was not updated completely
to describe the new behavior.

The pseudocode of the lookup algorithm also did not metion that
`index.json` is tried to be loaded, if you require a folder.
  • Loading branch information
lo1tuma committed Sep 3, 2014
1 parent 8e60b45 commit c2b1643
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions doc/api/modules.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ parent directory of the current module, and adds `/node_modules`, and
attempts to load the module from that location.

If it is not found there, then it moves to the parent directory, and so
on, until the root of the tree is reached.
on, until the root of the file system is reached.

For example, if the file at `'/home/ry/projects/foo.js'` called
`require('bar.js')`, then node would look in the following locations, in
Expand Down Expand Up @@ -394,7 +394,8 @@ in pseudocode of what require.resolve does:
b. let M = X + (json main field)
c. LOAD_AS_FILE(M)
2. If X/index.js is a file, load X/index.js as JavaScript text. STOP
3. If X/index.node is a file, load X/index.node as binary addon. STOP
3. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP
4. If X/index.node is a file, load X/index.node as binary addon. STOP

LOAD_NODE_MODULES(X, START)
1. let DIRS=NODE_MODULES_PATHS(START)
Expand All @@ -404,15 +405,14 @@ in pseudocode of what require.resolve does:

NODE_MODULES_PATHS(START)
1. let PARTS = path split(START)
2. let ROOT = index of first instance of "node_modules" in PARTS, or 0
3. let I = count of PARTS - 1
4. let DIRS = []
5. while I > ROOT,
2. let I = count of PARTS - 1
3. let DIRS = []
4. while I >= 0,
a. if PARTS[I] = "node_modules" CONTINUE
c. DIR = path join(PARTS[0 .. I] + "node_modules")
b. DIRS = DIRS + DIR
c. let I = I - 1
6. return DIRS
5. return DIRS

## Loading from the global folders

Expand Down

0 comments on commit c2b1643

Please sign in to comment.