Browse Source

module: allow require('.')

Previously, the minimal argument to require the current directory was
require('./'). This commits allows to skip the trailing slash.

Fixes: https://github.com/iojs/io.js/issues/1178
PR-URL: https://github.com/iojs/io.js/pull/1185
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Reviewed-By: Roman Reiss <me@silverwind.io>
v1.8.0-commit
Michaël Zasso 10 years ago
committed by Roman Reiss
parent
commit
6fc5e95354
  1. 2
      lib/module.js
  2. 1
      test/fixtures/module-require/relative/dot-slash.js
  3. 1
      test/fixtures/module-require/relative/dot.js
  4. 1
      test/fixtures/module-require/relative/index.js
  5. 6
      test/parallel/test-require-extensions-main.js

2
lib/module.js

@ -205,7 +205,7 @@ Module._resolveLookupPaths = function(request, parent) {
}
var start = request.substring(0, 2);
if (start !== './' && start !== '..') {
if (start !== '.' && start !== './' && start !== '..') {
var paths = modulePaths;
if (parent) {
if (!parent.paths) parent.paths = [];

1
test/fixtures/module-require/relative/dot-slash.js

@ -0,0 +1 @@
module.exports = require('./');

1
test/fixtures/module-require/relative/dot.js

@ -0,0 +1 @@
module.exports = require('.');

1
test/fixtures/module-require/relative/index.js

@ -0,0 +1 @@
exports.value = 42;

6
test/parallel/test-require-extensions-main.js

@ -2,3 +2,9 @@ var common = require('../common');
var assert = require('assert');
require(common.fixturesDir + '/require-bin/bin/req.js');
var a = require(common.fixturesDir + '/module-require/relative/dot.js');
var b = require(common.fixturesDir + '/module-require/relative/dot-slash.js');
assert.equal(a.value, 42);
assert.equal(a, b, 'require(".") should resolve like require("./")');

Loading…
Cancel
Save