diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-05-02 02:35:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-02 02:35:33 +0200 |
commit | 2f651b2d64523bdd377d22b8b7213a04ad82f459 (patch) | |
tree | f5776da1ee7e25b70bd736bf2428c3fbb06b35a0 /ext/fs/std_fs.rs | |
parent | 000315e75a20e82616a227702c98346f2b5e8b59 (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 'ext/fs/std_fs.rs')
-rw-r--r-- | ext/fs/std_fs.rs | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/ext/fs/std_fs.rs b/ext/fs/std_fs.rs index 49d113c01..4bdbf4943 100644 --- a/ext/fs/std_fs.rs +++ b/ext/fs/std_fs.rs @@ -647,15 +647,7 @@ fn metadata_to_fsstat(metadata: fs::Metadata) -> FsStat { } fn realpath(path: impl AsRef<Path>) -> FsResult<PathBuf> { - let canonicalized_path = path.as_ref().canonicalize()?; - #[cfg(windows)] - let canonicalized_path = PathBuf::from( - canonicalized_path - .display() - .to_string() - .trim_start_matches("\\\\?\\"), - ); - Ok(canonicalized_path) + Ok(deno_core::strip_unc_prefix(path.as_ref().canonicalize()?)) } fn read_dir(path: impl AsRef<Path>) -> FsResult<Vec<FsDirEntry>> { |