At the moment, I store my JS files in the assets area, but they aren't tracked by the staging and promotion mechanisms, so I can't make a change to the files without affecting the production environment. I know I have the option of creating duplicate files with versioned names, but that's too hard to manage.
Putting the files in a widget would let the portal track changes to them, so I could stage changes for testing and if they are okay, promote the changes to the prod environment. However, widgets only have a single js file, named logic.js. I would like to have multiple js files, ideally inside nested subfolders.