summaryrefslogtreecommitdiff
path: root/runtime/fs_util.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-05-02 02:35:33 +0200
committerGitHub <noreply@github.com>2023-05-02 02:35:33 +0200
commit2f651b2d64523bdd377d22b8b7213a04ad82f459 (patch)
treef5776da1ee7e25b70bd736bf2428c3fbb06b35a0 /runtime/fs_util.rs
parent000315e75a20e82616a227702c98346f2b5e8b59 (diff)
fix(npm): canonicalize filename before returning (#18948)
This commit changes how paths for npm packages are handled, by canonicalizing them when resolving. This is done so that instead of returning "node_modules/<package_name>@<version>/node_modules/<dep>/index.js" (which is a symlink) we "node_modules/<dep>@<dep_version>/index.js. Fixes https://github.com/denoland/deno/issues/18924 Fixes https://github.com/bluwy/create-vite-extra/issues/31 --------- Co-authored-by: David Sherret <dsherret@gmail.com>
Diffstat (limited to 'runtime/fs_util.rs')
-rw-r--r--runtime/fs_util.rs11
1 files changed, 1 insertions, 10 deletions
diff --git a/runtime/fs_util.rs b/runtime/fs_util.rs
index a29a57b39..eb4a2f899 100644
--- a/runtime/fs_util.rs
+++ b/runtime/fs_util.rs
@@ -10,16 +10,7 @@ use std::path::PathBuf;
/// Similar to `std::fs::canonicalize()` but strips UNC prefixes on Windows.
pub fn canonicalize_path(path: &Path) -> Result<PathBuf, Error> {
- let mut canonicalized_path = path.canonicalize()?;
- if cfg!(windows) {
- canonicalized_path = PathBuf::from(
- canonicalized_path
- .display()
- .to_string()
- .trim_start_matches("\\\\?\\"),
- );
- }
- Ok(canonicalized_path)
+ Ok(deno_core::strip_unc_prefix(path.canonicalize()?))
}
#[inline]