Can export:web be made to version files?

We are starting to actively develop the web version of our app. export:web is working great, we’re pushing the files up to S3 and using CloudFront. However, I’m running into a small challenge as we cutover from the previous version of our app to the new version.

Can export:web be made to fingerprint the files?

It’s common for static assets to have a unique filename such as manifest-908e25f4bf641868d8683022a5b62f54.json so that when the contents of the file changes the name of the file changes. It appears that maybe this is happening within the /static subdirectory, but the filenames are not changing for the rest of the files:

If the filenames were all fingerprinted, then doing a smooth cutover after a deploy is simpler. We just redirect our users to the new index file and we can trust that all the other assets will smoothly follow as users load the new index and all the references are fetched for the first time.

However, without fingerprinted files, we instead delete all web cache files from our S3 bucket, upload new ones, and then right after our backend deploys we invalidate the CloudFront cache. There are some timing issues during deploy when our users are still using a cached index.html yet it’s requesting a less frequently used asset which was not cached, so the request to S3 fails. And I don’t even know how long it takes before CloudFront expires all the caches at the edges of it’s nodes.

If all filenames were versioned, then we would not have to invalidate cache and be so sensitive to the timing of this during a deploy process.