Skip to content

Add asset map to the bundle as a JS module, so that it can be accessed programmatically without extra network requests #141

@lolmaus

Description

@lolmaus

Hi! Thanks for the infrastructural addon!

Problem

I need to access files over network. With the current implementation of broccoli-asset-map, I have the following options:

  • Disable fingerprinting on specific files. Causes files to be cached, cache does not get busted.
  • Generate a random hash on build, use the same hash on all files, use the know hash to access the files. Idea by @NullVoxPopuli. Causes cache to be busted on all files, including unchanged ones.
  • Use an extra request to load assetMap.json over the network and find out fingerprinted URLs to files.

As you can see, all options are suboptimal.

I ended up using the first one, adding a random query param to bust the cache. This make this option tolerable.

Suggested solution

Making the asset map accessible as part of the JS bundle resolves the issue: we will be able to fetch fingerprinted assets without extra network requests, with cache busted when needed and only when needed.

Could be import { assetMap } from 'broccoli-asset-rev' or something.

Of course, this feature should be opt-in to avoid increasing bundle size for those who don't need it.

CC @simonihmig.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions