fix: normalize Windows paths in entry points to handle backslashes correctly #1300
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.
Problem
tsup was not properly handling Windows-style paths (with backslashes) in entry points, causing issues for Windows users when specifying input files using backslashes or mixed path separators.
Solution
Added path normalization using the
slash
utility to convert Windows backslashes to forward slashes in two key areas:The normalization ensures consistent path handling across platforms by converting Windows backslashes (
\
) to forward slashes (/
) before processing.Testing
The changes were tested using both Windows-style and mixed path formats, running on macOS to ensure cross-platform compatibility. The test suite includes:
windows: backslash in entry
- Tests basic backslash handlingwindows: complex path handling
- Tests nested paths with backslasheswindows: object entry with backslashes
- Tests object entries with custom nameswindows: mixed path separators
- Tests mixed forward/backward slashesAll Windows path-related tests pass successfully on macOS, confirming that the changes work correctly while maintaining compatibility with Unix-style paths.
Testing Instructions
You can verify these changes by:
npm test -- -t "windows:"
to run the Windows-specific testsIssue:
closes: #1150