Permalink
Browse files

Closes #1177 remove one node_modules optimization

to better support certain project structures.
  • Loading branch information...
1 parent 88552c5 commit 39246f65dfb019ddebcc9db8d5cc776954e12129 Mathias Buus committed with isaacs Jun 13, 2011
Showing with 2 additions and 36 deletions.
  1. +1 −24 doc/api/modules.markdown
  2. +1 −6 lib/module.js
  3. +0 −6 test/fixtures/node_modules/baz/index.js
@@ -68,8 +68,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 either the module is found, or the root of the tree is
-reached.
+on, until the root of the tree 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
@@ -83,28 +82,6 @@ this order:
This allows programs to localize their dependencies, so that they do not
clash.
-#### Optimizations to the `node_modules` Lookup Process
-
-When there are many levels of nested dependencies, it is possible for
-these file trees to get fairly long. The following optimizations are thus
-made to the process.
-
-First, `/node_modules` is never appended to a folder already ending in
-`/node_modules`.
-
-Second, if the file calling `require()` is already inside a `node_modules`
-hierarchy, then the top-most `node_modules` folder is treated as the
-root of the search tree.
-
-For example, if the file at
-`'/home/ry/projects/foo/node_modules/bar/node_modules/baz/quux.js'`
-called `require('asdf.js')`, then node would search the following
-locations:
-
-* `/home/ry/projects/foo/node_modules/bar/node_modules/baz/node_modules/asdf.js`
-* `/home/ry/projects/foo/node_modules/bar/node_modules/asdf.js`
-* `/home/ry/projects/foo/node_modules/asdf.js`
-
### Folders as Modules
It is convenient to organize programs and libraries into self-contained
View
@@ -199,12 +199,7 @@ Module._nodeModulePaths = function(from) {
var paths = [];
var parts = from.split(splitRe);
- var root = parts.indexOf('node_modules') - 1;
- if (root < 0) root = 0;
-
- var tip = parts.length - 1;
-
- for (var tip = parts.length - 1; tip >= root; tip --) {
+ for (var tip = parts.length - 1; tip >= 0; tip --) {
// don't search in .../node_modules/node_modules
if (parts[tip] === 'node_modules') continue;
var dir = parts.slice(0, tip + 1).concat('node_modules').join(joiner);
Oops, something went wrong.

0 comments on commit 39246f6

Please sign in to comment.