ember-cli / ember-cli/broccoli-asset-rev

Feature request: fingerprint everything, allow excludes

Open
#88 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
86
Forks
79
PR merge metrics
No merged PRs in 30d

Description

![FINGERPRINT ALL THE FILES](https://i.imgur.com/QlJuhyJ.jpg)

Personally, I think it's more useful to fingerprint all files regardless of their extension and only exclude a few. It would be great if that mode was supported by setting `extensions: null`.

Here's why:

When I deploy my static assets I basically want them cached forever. That's why I configured my CDN (CloudFlare) to instruct the browsers to cache all files from my `https://assets.example.com/` domain for 1 year. The problem with this is, that there are some files (like icon fonts) that don't get fingerprinted because of their file extension, but still get these caching rules.

This is problematic when these files are regenerated and change. Because they were not fingerprinted, all browsers retain the old version and don't download the new one.

Of course I could fix this by adding `.woff` and all other web font output extensions to the `extensions` array.

However, this is tedious and paves the way for unexpected caching errors. Especially when I introduce additional formats like `.svg` or `.webm`, etc.
Whenever I add a new static file format, I'd have to make sure it's on the list.

Therefore my suggestion: Setting `extensions: null` disables the filtering. This would not break backwards compatibility as far as I can see. I'd make a PR, if you're okay with this. :smiley:

One step further (but breaking backwards compatibility): fingerprint all files by default, except for some sensible exclusions, like `/index.html` and `/favicon.ico`, even though the latter one is debatable. The old behaviour would be opt-in by setting `extensions` to an array.

Was there a specific reason to not fingerprint all files right away? Performance maybe? If peformance is a problem, we could introduce a new setting `maxSize`, and files would be filtered based on that.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.