-
-
Notifications
You must be signed in to change notification settings - Fork 385
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
Not recovering from failed dynamic import #278
Comments
After some further research, it looks like the code which reloads the Javascript files also adds another set of script tags when it retries (duplicating the script tags in the DOM). Currently, this plugin does not do this for its link tags due to this line. This seems to be the cause for the css not being re-requested, even if we clear the chunkId from installedCssChunks. I am currently working on an implementation to fix this for PR, though I would welcome preemptive feedback on the consequences of these proposed changes. |
@cwalten PR welcome |
Hi @evilebottnawi - I'm currently working on the GatsbyJS offline plugin, and noticed that this problem is preventing page resources from loading after going offline and then regaining connection. I saw there's currently an open PR to fix this (#292) - is there any reason why this hasn't been merged yet? We would love to get this fixed so I'd be happy to continue working on the PR if there's anything that needs changing! |
@davidbailey00 need review from @sokra , i sent request on review again |
Looks good, thanks for your help! |
This issue arises when a dynamic import fails (in this case due to network instability). If the request does fail, the import code will never attempt to request the CSS again. Thus, we will never successfully complete the import. The code which is making that request would be something like the following:
Sorry I could not provide a better base example, as this issue requires a server and network manipulation to achieve.
Reproduction steps:
This shows that the installedCssChunks has held onto the Rejected Promise:
This shows that the CSS was never requested again, failing the Promise in the example above (Note: the blank row is a JSON request not relevant for this discussion):
This shows the Rejected Promise being pushed into the promises array for 'execution' (immediate rejection):
It is possible I have implemented this dynamic request incorrectly, but I was unable to find any solutions which fixed this issue through Webpack or this plugin specifically. Since the Javascript is being requested successfully (see above), it feels like an issue with the template code provided by this plugin.
The text was updated successfully, but these errors were encountered: