aboutsummaryrefslogtreecommitdiff
path: root/node_modules/resolve/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/resolve/lib')
-rw-r--r--node_modules/resolve/lib/node-modules-paths.js14
-rw-r--r--node_modules/resolve/lib/sync.js6
2 files changed, 17 insertions, 3 deletions
diff --git a/node_modules/resolve/lib/node-modules-paths.js b/node_modules/resolve/lib/node-modules-paths.js
index dc06199db..a4bde6a96 100644
--- a/node_modules/resolve/lib/node-modules-paths.js
+++ b/node_modules/resolve/lib/node-modules-paths.js
@@ -1,16 +1,26 @@
var path = require('path');
+var fs = require('fs');
var parse = path.parse || require('path-parse');
module.exports = function nodeModulesPaths(start, opts) {
var modules = opts && opts.moduleDirectory
? [].concat(opts.moduleDirectory)
- : ['node_modules']
- ;
+ : ['node_modules'];
// ensure that `start` is an absolute path at this point,
// resolving against the process' current working directory
var absoluteStart = path.resolve(start);
+ if (opts && opts.preserveSymlinks === false) {
+ try {
+ absoluteStart = fs.realpathSync(absoluteStart);
+ } catch (err) {
+ if (err.code !== 'ENOENT') {
+ throw err;
+ }
+ }
+ }
+
var prefix = '/';
if (/^([A-Za-z]:)/.test(absoluteStart)) {
prefix = '';
diff --git a/node_modules/resolve/lib/sync.js b/node_modules/resolve/lib/sync.js
index 510ca256c..bc9e287a1 100644
--- a/node_modules/resolve/lib/sync.js
+++ b/node_modules/resolve/lib/sync.js
@@ -57,14 +57,18 @@ module.exports = function (x, options) {
function loadAsDirectorySync(x) {
var pkgfile = path.join(x, '/package.json');
if (isFile(pkgfile)) {
- var body = readFileSync(pkgfile, 'utf8');
try {
+ var body = readFileSync(pkgfile, 'UTF8');
var pkg = JSON.parse(body);
+
if (opts.packageFilter) {
pkg = opts.packageFilter(pkg, x);
}
if (pkg.main) {
+ if (pkg.main === '.' || pkg.main === './') {
+ pkg.main = 'index';
+ }
var m = loadAsFileSync(path.resolve(x, pkg.main));
if (m) return m;
var n = loadAsDirectorySync(path.resolve(x, pkg.main));