A module ID with a trailing slash must be a dir.

require('./foo/') should not try to load './foo.js'.  It should only
look for ./foo/index.js

Closes GH-588
This commit is contained in:
isaacs authored and Ryan Dahl committed 2011-01-27 14:02:43 -08:00
1 parent 36ef5643c3
commit 6cdeb3b3fd
4 files changed
+17 -5

No files matched your search

+10 -5
View File
@@ -58,6 +58,8 @@ Module._findPath = function(request, paths) {
paths = [''];
}
var trailingSlash = (request.slice(-1) === '/');
// check if the file exists and is not a directory
function tryFile(requestPath) {
try {
@@ -89,13 +91,16 @@ Module._findPath = function(request, paths) {
// For each path
for (var i = 0, PL = paths.length; i < PL; i++) {
var basePath = path.resolve(paths[i], request);
var filename;
// try to join the request to the path
var filename = tryFile(basePath);
if (!trailingSlash) {
// try to join the request to the path
filename = tryFile(basePath);
if (!filename) {
// try it with each of the extensions
filename = tryExtensions(basePath);
if (!filename && !trailingSlash) {
// try it with each of the extensions
filename = tryExtensions(basePath);
}
}
if (!filename) {
View File
Whitespace-only changes.
View File
Whitespace-only changes.
+7
View File
@@ -52,6 +52,13 @@ var one = require('../fixtures/nested-index/one'),
two = require('../fixtures/nested-index/two');
assert.notEqual(one.hello, two.hello);
common.debug('test index.js in a folder with a trailing slash');
var three = require('../fixtures/nested-index/three'),
threeFolder = require('../fixtures/nested-index/three/'),
threeIndex = require('../fixtures/nested-index/three/index.js');
assert.equal(threeFolder, threeIndex);
assert.notEqual(threeFolder, three);
common.debug('test cycles containing a .. path');
var root = require('../fixtures/cycles/root'),
foo = require('../fixtures/cycles/folder/foo');