How to manage views and files with hashes?
I'm responsible for a Laravel web app that serves multiple pages, each one being a React "SPA". When I deploy on production I run a build script that will:
- run Webpack, which outputs the files with a hash and creates a manifest file;
- run a Gulp task that will find all the views, search for html comments, and inject the updated file names;
Then I commit everything and deploy.
One of the things I would like to improve is regarding the views and the hashes. Currently I rely on some conventions to get the whole setup working. For example, the name of the Webpack entries have to be the name of the views. So, I can find the right file to inject the updated file names.
I would like a more declarative approach and I'm writing a library to solve this problem using a configuration file, updated by Webpack, to know what to inject and where.
So, my questions are:
- How do you manage to update views (html, templates, etc) with the correct path for hashed file names?
- What are the problems managing frontend assets (js, css, font files, etc) that you'd like to get solved?
Thank you!
EDIT I wrote an open-source project to address this problem and other problems about managing assets in frontend applications: Frontend Assets Manager
Any feedback is welcome!