Use path.relative instead of path.posix.relative for relative paths #299
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On Windows calling:
will produce
../../../..
.I believe what it does in this case is run
path.posix.resolve()
on both arguments producing/Users/Brian/C:/Users/Brian/10ten-ja-reader
and/Users/Brian
and then determines the relative between the two giving us../../../..
.If we use
path.relative
instead, which does not try to resolve both paths to posix paths first, we get the expected result, an empty string:(Source: https://nodejs.org/api/path.html#pathrelativefrom-to)
We'll still probably want to convert the result of that to a posix path using our
toPosix
helper, in order to be consistent with how we handle paths elsewhere, otherwise we'll get results with backslashes in them.I've so far only observed an incorrect result coming about from the
'.'
input and that only from the Playwright plugin so an alternative fix might be to get the Playwright plugin to stop producing relative paths of the form'.'
but I suspect this could show up in other places.