fix(plugin-vue): hmr not working when updating script+template at the same time with a template preprocessor #106
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.
Description
Fixes #28 and #76.
When using pug as a template preprocessor and if you update both script and template at the same time, you will get
as a browser console error instead of hmr updating properly.
This is because the template compilation relies on the compiled script being already in cache, which in this case it isn't, because the hmr requests both template and script modules at the same time (see #28 for timing).
This fix makes sure that the script cache is always populated before the template is compiled.
Additional context
I'm not sure if calling
resolveScript
on every templatecompile
is overkill, butresolveScript
has an early return if there is already cached result. I could not get the relevant context ("template+script update at same time") on compile time, since this information is lost when the hmr client makes two separate requests.What is the purpose of this pull request?
Before submitting the PR, please make sure you do the following
fixes #123
).