ember-cli / broccoli-asset-rev

Broccoli plugin to add fingerprint checksums and CDN URLs to your assets
MIT License
87 stars 84 forks source link

ensure we only endup with one assetMap when fingerprintAssetMap is true #146

Closed betocantu93 closed 3 years ago

betocantu93 commented 3 years ago

Overview

When using the option fingerprintAssetMap: true you end up with two different versions of the assetMap.json by default i.e.

assetMapPath - Default: 'assets/assetMap-HASH.json'

It seems Fingerprint.prototype.writeAssetMap gets called multiple times (2 at least) by the build process, I honestly don't know if this is normal or how to go deeper on this topic... so for each call an assetMap.json is written with a different md5 hash, also it seems that each call is incremental, meaning it always have the first's call assets plus new ones found I guess.

Alternatively when using fingerprintAssetMap: false the fileName stays the same in each call and so it gets effectively overwritten by the last writeAssetMap execution, so this "bug" actually always exists, its just hidden when using the default value fingerprintAssetMap: false.

Patch/Fix

There's prob a better way to do this, but for now, save the assetMapHash for latter reuse, so we basically overwrite the file, like when using fingerprintAssetMap: false

Related Issues

122