Feu-Secret / Tokenmagic

A Foundry VTT module that allows you to add animations and graphic effects to tokens, tiles, templates and drawings.
GNU General Public License v3.0
51 stars 36 forks source link

Build JS files into a bundle to reduce requests #254

Closed 346184 closed 10 months ago

346184 commented 1 year ago

Hey! While debugging the large number of requests causing infrastructure issues when loading into Foundry, I saw that the module currently needs 87 requests for me on each load into Foundry:

87 tokenmagic
# 1 -> modules/tokenmagic/styles/tokenmagic.css
# 2 -> modules/tokenmagic/libs/filters/pixi-filters.js
# 3 -> modules/tokenmagic/module/settings.js
# 4 -> modules/tokenmagic/module/tokenmagic.js
# 5 -> modules/tokenmagic/module/proto/PlaceableObjectProto.js
# 6 -> modules/tokenmagic/fx/Anime.js
# 7 -> modules/tokenmagic/fx/filters/FilterBlurEx.js
# 8 -> modules/tokenmagic/fx/filters/FilterDropShadowEx.js
# 9 -> modules/tokenmagic/fx/filters/FilterBevel.js
# 10 -> modules/tokenmagic/fx/filters/FilterAdjustment.js
# 11 -> modules/tokenmagic/fx/filters/FilterAdvancedBloom.js
# 12 -> modules/tokenmagic/fx/filters/FilterDistortion.js
# 13 -> modules/tokenmagic/fx/filters/FilterGlow.js
# 14 -> modules/tokenmagic/fx/filters/FilterOldFilm.js
# 15 -> modules/tokenmagic/fx/filters/FilterDropShadow.js
# 16 -> modules/tokenmagic/fx/filters/FilterOutline.js
# 17 -> modules/tokenmagic/fx/filters/FilterTwist.js
# 18 -> modules/tokenmagic/fx/filters/FilterZoomBlur.js
# 19 -> modules/tokenmagic/fx/filters/FilterBlur.js
# 20 -> modules/tokenmagic/fx/filters/FilterBulgePinch.js
# 21 -> modules/tokenmagic/fx/filters/FilterRemoveShadow.js
# 22 -> modules/tokenmagic/fx/filters/FilterRays.js
# 23 -> modules/tokenmagic/fx/filters/FilterFog.js
# 24 -> modules/tokenmagic/fx/filters/FilterXFog.js
# 25 -> modules/tokenmagic/fx/filters/FilterElectric.js
# 26 -> modules/tokenmagic/fx/filters/FilterShockWave.js
# 27 -> modules/tokenmagic/fx/filters/FilterFumes.js
# 28 -> modules/tokenmagic/fx/filters/FilterWaves.js
# 29 -> modules/tokenmagic/fx/filters/FilterFire.js
# 30 -> modules/tokenmagic/fx/filters/FilterFlood.js
# 31 -> modules/tokenmagic/fx/filters/FilterSmoke.js
# 32 -> modules/tokenmagic/fx/filters/FilterForceField.js
# 33 -> modules/tokenmagic/fx/filters/FilterMirrorImages.js
# 34 -> modules/tokenmagic/fx/filters/FilterXRays.js
# 35 -> modules/tokenmagic/fx/filters/FilterLiquid.js
# 36 -> modules/tokenmagic/fx/filters/FilterGleamingGlow.js
# 37 -> modules/tokenmagic/fx/filters/FilterPixelate.js
# 38 -> modules/tokenmagic/fx/filters/FilterSpiderWeb.js
# 39 -> modules/tokenmagic/fx/filters/FilterSolarRipples.js
# 40 -> modules/tokenmagic/fx/filters/FilterGlobes.js
# 41 -> modules/tokenmagic/fx/filters/FilterTransform.js
# 42 -> modules/tokenmagic/fx/filters/FilterSplash.js
# 43 -> modules/tokenmagic/fx/filters/FilterPolymorph.js
# 44 -> modules/tokenmagic/fx/filters/FilterXFire.js
# 45 -> modules/tokenmagic/fx/filters/FilterSprite.js
# 46 -> modules/tokenmagic/fx/filters/proto/FilterProto.js
# 47 -> modules/tokenmagic/fx/filters/FilterAscii.js
# 48 -> modules/tokenmagic/fx/filters/FilterDot.js
# 49 -> modules/tokenmagic/fx/filters/FilterReplaceColor.js
# 50 -> modules/tokenmagic/fx/filters/FilterDDTint.js
# 51 -> modules/tokenmagic/fx/presets/defaultpresets.js
# 52 -> modules/tokenmagic/migration/migration.js
# 53 -> modules/tokenmagic/module/constants.js
# 54 -> modules/tokenmagic/fx/filters/FilterCRT.js
# 55 -> modules/tokenmagic/fx/filters/FilterRGBSplit.js
# 56 -> modules/tokenmagic/fx/glsl/fragmentshaders/sprite.js
# 57 -> modules/tokenmagic/fx/glsl/vertexshaders/customvertex2DSampler.js
# 58 -> modules/tokenmagic/fx/filters/CustomFilter.js
# 59 -> modules/tokenmagic/fx/glsl/fragmentshaders/fog.js
# 60 -> modules/tokenmagic/fx/glsl/vertexshaders/customvertex2D.js
# 61 -> modules/tokenmagic/fx/glsl/fragmentshaders/spiderweb.js
# 62 -> modules/tokenmagic/fx/glsl/fragmentshaders/cosmicray.js
# 63 -> modules/tokenmagic/fx/glsl/fragmentshaders/liquid.js
# 64 -> modules/tokenmagic/fx/glsl/fragmentshaders/dropshadow.js
# 65 -> modules/tokenmagic/fx/glsl/fragmentshaders/xfog.js
# 66 -> modules/tokenmagic/fx/glsl/fragmentshaders/ripples.js
# 67 -> modules/tokenmagic/fx/glsl/fragmentshaders/fire.js
# 68 -> modules/tokenmagic/fx/glsl/fragmentshaders/magicglow.js
# 69 -> modules/tokenmagic/fx/glsl/fragmentshaders/ddtint.js
# 70 -> modules/tokenmagic/fx/glsl/fragmentshaders/globes.js
# 71 -> modules/tokenmagic/fx/glsl/fragmentshaders/xray.js
# 72 -> modules/tokenmagic/fx/glsl/fragmentshaders/fumes.js
# 73 -> modules/tokenmagic/fx/glsl/fragmentshaders/waves.js
# 74 -> modules/tokenmagic/fx/glsl/fragmentshaders/polymorph.js
# 75 -> modules/tokenmagic/fx/glsl/fragmentshaders/mirrorimages.js
# 76 -> modules/tokenmagic/fx/glsl/fragmentshaders/splash.js
# 77 -> modules/tokenmagic/fx/glsl/fragmentshaders/matrix.js
# 78 -> modules/tokenmagic/fx/glsl/fragmentshaders/xfire.js
# 79 -> modules/tokenmagic/fx/glsl/fragmentshaders/smoke.js
# 80 -> modules/tokenmagic/fx/glsl/fragmentshaders/forcefield.js
# 81 -> modules/tokenmagic/fx/glsl/fragmentshaders/removeshadow.js
# 82 -> modules/tokenmagic/fx/glsl/fragmentshaders/electricity.js
# 83 -> modules/tokenmagic/module/autoTemplate/dnd5e.js
# 84 -> modules/tokenmagic/module/autoTemplate/pf2e.js
# 85 -> modules/tokenmagic/module/autoTemplate/TheWitcherTRPG.js
# 86 -> modules/tokenmagic/fx/glsl/fragmentshaders/flood.js
# 87 -> modules/tokenmagic/lang/en.json

Would be nice if you could bundle the JS files with a build step when distributing, so they are not all separate HTTP requests. If everyone does this, even 10 modules require 870 HTTP requests, and some people tend to have way more modules.

Thanks for the amazing module, I've ben a fan of TokenMagic for years now. :)