summaryrefslogtreecommitdiff
path: root/ext/node/02_require.js
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2022-11-06 00:58:21 +0100
committerGitHub <noreply@github.com>2022-11-06 00:58:21 +0100
commite7d7da85dff177bbc919cab48643135c68e065bd (patch)
treeee6ddb2abe715b80ad0334750e262ef7145f7975 /ext/node/02_require.js
parent384e53308a7d7e5d503e9cbf9950ab428048ac4c (diff)
fix(npm): fix CJS resolution with local node_modules dir (#16547)
This commit fixes CJS resolution when there's a local "node_modules/" directory. Before this commit relative imports from CJS files where resolved relative to root directory of the package instead of relative to referrer file.
Diffstat (limited to 'ext/node/02_require.js')
-rw-r--r--ext/node/02_require.js9
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/node/02_require.js b/ext/node/02_require.js
index b699db00b..ac34a5fca 100644
--- a/ext/node/02_require.js
+++ b/ext/node/02_require.js
@@ -401,6 +401,15 @@
Module._resolveLookupPaths = function (request, parent) {
const paths = [];
+
+ if (core.ops.op_require_is_request_relative(request) && parent?.filename) {
+ ArrayPrototypePush(
+ paths,
+ core.ops.op_require_path_dirname(parent.filename),
+ );
+ return paths;
+ }
+
if (parent?.filename && parent.filename.length > 0) {
const denoDirPath = core.ops.op_require_resolve_deno_dir(
request,