browserify / browserify/module-deps

module-deps seems incompatible with node-resolve

Open
#149 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
208
Forks
102
PR merge metrics
No merged PRs in 30d

Description

See https://stackoverflow.com/q/51347558/1198896 for the detailed background, but basically, given the following minimal testcase:

`test.js`:

```js
require('./test2.js');
```

`test2.js`: (empty)

`test3.js`:

```js
var resolve = require('resolve'),
mdeps = require('module-deps'),
through2 = require('through2');

var md = mdeps({
resolve: resolve
});

md.end(require.resolve('./test.js'));
```

Running `test3.js` creates this output:

```
events.js:183
throw er; // Unhandled 'error' event
^

Error: Cannot find module './test2.js' from '/Users/alex/Development/audittool/test.js'
at /Users/alex/Development/audittool/node_modules/resolve/lib/async.js:65:35
at load (/Users/alex/Development/audittool/node_modules/resolve/lib/async.js:84:43)
at onex (/Users/alex/Development/audittool/node_modules/resolve/lib/async.js:109:17)
at /Users/alex/Development/audittool/node_modules/resolve/lib/async.js:12:69
at FSReqWrap.oncomplete (fs.js:152:21)
```

The problem seems to be that `node-resolve` is not getting the correct `basedir` in its options object. Modifying `node_modules/module-deps/index.js` to insert `if (parent.package) parent.basedir = parent.package.__dirname;` on line 170 (right before the `self.resolver()` call) appears to fix this issue. I would PR but I don't know the source well enough to judge whether that's actually the correct place.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.