Regarding vuejs/language-tools#4297, although the issue was resolved by converting the Windows path, the root cause is that the script snapshot changes due to different file names (Vue language tools adds the file name to the virtual code), while the script version remains unchanged, causing the source map to not invalidate the cache.
In this case, we should only update the script snapshot when the script version changes.