From f8defa3e090e194ce2eca9937cf9fa16bfc780fd Mon Sep 17 00:00:00 2001 From: isaacs Date: Thu, 17 Feb 2011 12:00:39 -0800 Subject: [PATCH] package.json main as indexed subdir Closes GH-686. --- lib/module.js | 3 ++- test/fixtures/packages/main-index/package-main-module/index.js | 1 + test/fixtures/packages/main-index/package.json | 3 +++ test/simple/test-module-loading.js | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/packages/main-index/package-main-module/index.js create mode 100644 test/fixtures/packages/main-index/package.json diff --git a/lib/module.js b/lib/module.js index f94da1d04..ba0b4f355 100644 --- a/lib/module.js +++ b/lib/module.js @@ -85,7 +85,8 @@ function tryPackage(requestPath, exts) { if (!pkg || !pkg.main) return false; var filename = path.resolve(requestPath, pkg.main); - return tryFile(filename) || tryExtensions(filename, exts); + return tryFile(filename) || tryExtensions(filename, exts) || + tryExtensions(path.resolve(filename, 'index'), exts); } // In order to minimize unnecessary lstat() calls, diff --git a/test/fixtures/packages/main-index/package-main-module/index.js b/test/fixtures/packages/main-index/package-main-module/index.js new file mode 100644 index 000000000..a9fe79564 --- /dev/null +++ b/test/fixtures/packages/main-index/package-main-module/index.js @@ -0,0 +1 @@ +exports.ok = "ok" diff --git a/test/fixtures/packages/main-index/package.json b/test/fixtures/packages/main-index/package.json new file mode 100644 index 000000000..13a7d5804 --- /dev/null +++ b/test/fixtures/packages/main-index/package.json @@ -0,0 +1,3 @@ +{"name":"package-name" +,"version":"1.2.3" +,"main":"package-main-module"} diff --git a/test/simple/test-module-loading.js b/test/simple/test-module-loading.js index 12f685ecd..4b7062ff3 100644 --- a/test/simple/test-module-loading.js +++ b/test/simple/test-module-loading.js @@ -70,6 +70,8 @@ assert.notEqual(threeFolder, three); common.debug('test package.json require() loading'); assert.equal(require('../fixtures/packages/main').ok, 'ok', 'Failed loading package'); +assert.equal(require('../fixtures/packages/main-index').ok, 'ok', + 'Failed loading package with index.js in main subdir'); common.debug('test cycles containing a .. path'); var root = require('../fixtures/cycles/root'),