Open
Description
See https://stackoverflow.com/q/51347558/1198896 for the detailed background, but basically, given the following minimal testcase:
test.js
:
require('./test2.js');
test2.js
: (empty)
test3.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.
Metadata
Metadata
Assignees
Labels
No labels