diff --git a/index.js b/index.js index d4e3ba16e..ab4d7bd4c 100644 --- a/index.js +++ b/index.js @@ -503,7 +503,7 @@ Browserify.prototype._createDeps = function (opts) { } if (err) cb(err, file, pkg) else if (file) { - if (opts.preserveSymlinks && parent) { + if (opts.preserveSymlinks && parent.id !== self._mdeps.top.id) { return cb(err, path.resolve(file), pkg, file) } diff --git a/test/preserve-symlinks.js b/test/preserve-symlinks.js index 555787bea..aefb99361 100644 --- a/test/preserve-symlinks.js +++ b/test/preserve-symlinks.js @@ -13,3 +13,15 @@ test('optionally preserves symlinks', function (t) { vm.runInNewContext(src, {}); }); }); + +test('always resolve entry point symlink', function (t) { + t.plan(2); + + var b = browserify(__dirname + '/preserve_symlinks/linked-entry.js', {preserveSymlinks: true}); + b.bundle(function (err, buf) { + t.ok(!err); + t.ok(buf); + var src = buf.toString('utf8'); + vm.runInNewContext(src, {}); + }); +}) diff --git a/test/preserve_symlinks/linked-entry.js b/test/preserve_symlinks/linked-entry.js new file mode 120000 index 000000000..1d7813582 --- /dev/null +++ b/test/preserve_symlinks/linked-entry.js @@ -0,0 +1 @@ +a/index.js \ No newline at end of file