Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: hmr failed when add missing dep after watch started #845

Merged
merged 1 commit into from
Jan 9, 2024

Conversation

zhangpanweb
Copy link
Contributor

问题:watch 启动后,如果有缺少的 dep,增加此 dep,resolver 会因为缓存导致 resolve 不到 dep

解法:增加文件,在重新 resolve 前删除缓存

pub fn clear_resolver_cache(resolvers: &Resolvers) {
resolvers
.iter()
.for_each(|(_, resolver)| resolver.clear_entries());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里有更小颗粒度的 clear api 吗?

Copy link
Contributor Author

@zhangpanweb zhangpanweb Jan 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

没有更小颗粒的 api。本来是想给 nodejs_resolver pr 一个方法,单独删一个 entry,但是内部缓存用的 key 值是经过处理后的 path,不是传入的 request。看了下,hmr,只有在加文件的时候需要重新 resolve 添加的这个文件,所以删缓存理论上对后续hmr的速度影响也可控。给 nodejs_resolver 提了个 issue:web-infra-dev/nodejs_resolver#201 ,如果后续有方法,这里再优化一下

@sorrycc sorrycc merged commit 0825b8c into master Jan 9, 2024
8 checks passed
@delete-merged-branch delete-merged-branch bot deleted the fix/hmr-on-add-file branch January 9, 2024 02:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants