summaryrefslogtreecommitdiff
path: root/ext/node
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node')
-rw-r--r--ext/node/ops/require.rs10
-rw-r--r--ext/node/polyfills/01_require.js6
2 files changed, 5 insertions, 11 deletions
diff --git a/ext/node/ops/require.rs b/ext/node/ops/require.rs
index 34eac8475..1c8647bab 100644
--- a/ext/node/ops/require.rs
+++ b/ext/node/ops/require.rs
@@ -287,15 +287,7 @@ where
let path = PathBuf::from(request);
ensure_read_permission::<Env::P>(state, &path)?;
let fs = state.borrow::<Arc<dyn NodeFs>>();
- let mut canonicalized_path = fs.canonicalize(&path)?;
- if cfg!(windows) {
- canonicalized_path = PathBuf::from(
- canonicalized_path
- .display()
- .to_string()
- .trim_start_matches("\\\\?\\"),
- );
- }
+ let canonicalized_path = deno_core::strip_unc_prefix(fs.canonicalize(&path)?);
Ok(canonicalized_path.to_string_lossy().to_string())
}
diff --git a/ext/node/polyfills/01_require.js b/ext/node/polyfills/01_require.js
index 8fbe5078c..ce7312ee8 100644
--- a/ext/node/polyfills/01_require.js
+++ b/ext/node/polyfills/01_require.js
@@ -861,9 +861,11 @@ Module.prototype.load = function (filename) {
throw Error("Module already loaded");
}
- this.filename = filename;
+ // Canonicalize the path so it's not pointing to the symlinked directory
+ // in `node_modules` directory of the referrer.
+ this.filename = ops.op_require_real_path(filename);
this.paths = Module._nodeModulePaths(
- pathDirname(filename),
+ pathDirname(this.filename),
);
const extension = findLongestRegisteredExtension(filename);
// allow .mjs to be overriden