fix(webpack): HMR not work on Windows #3495
Merged
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.
Describe
Unplugin will also normalize absolute path since 0.9.0 .
ref:
Reproduction
On Windows .
Use vue-cli5 with default css.extract (
false
) .You can see it when debugging:
The path in updateModules is
/__uno.css
.The id in load is
\__uno.css
which use backslash , so the hash is alwaysundefined
.PS
This
normalizeAbsolutePath
is really bad, it only works on absolute paths on Windows ( but the/foo/bar
is not strictly a Windows absolute path ) , and is meaningless for other situations.Now some places use
normalizeAbsolutePath
for conversion, and some places are missing, which makes it very confusing. This is very unfriendly to Windows users , because some inexplicable problems always occur due to missing conversions in some places, and it is very difficult to troubleshoot the problem.My opinion: if all places where paths are used are converted to slashes or relative paths relative to the project root, then if you see backslashes, you can quickly realize that there is a problem here.