title: Force updates on installed PWA when changing index.html (prevent caching)
body: <p>I am building a react app, which consists in a Single Page Application, hosted on Amazon S3.</p>
  
  <p>Sometimes, I deploy a change to the back-end and to the front-end at the same time, and I need all the browser sessions to start running the new version, or at least those whose sessions start after the last front-end deploy.</p>
  
  <p>What happens is that many of my users still running the old front-end version on their phones <strong><em>for weeks</em></strong>, which is not compatible with the new version of the back-end anymore, but some of them get the updates by the time they start the next session.</p>
  
  <p>As I use Webpack to build the app, it generates bundles with hashes in their names, while the <code>index.html</code> file, which defines the bundles that should be used, is uploaded with the following cache-control property: <code>"no-cache, no-store, must-revalidate"</code>. The service worker file has the same cache policy.</p>
  
  <p>The idea is that the user's browser can cache everything, execpt for the first files they need. The plan was good, but I'm replacing the <code>index.html</code> file with a newer version and my users are not refetching this file when they restart the app.</p>
  
  <p>Is there a definitive guide or a way to workaround that problem?</p>
  
  <p>I also know that a PWA should work offline, so it has to have the ability to cache to reuse, but this idea doesn't help me to perform a massive and instantaneous update as well, right?</p>
  
  <p>What are the best options I have to do it?</p>