Thanks for bringing this up. Although the official guide (https://webpack.js.org/guides/caching/) was also written by me, it is probably more up-to-date since other contributors can collaborate and update it more frequently.
I’d like to propose my app I’m currently building as a candidate for exploration: https://github.com/okonet/codestage
Please let me know if you’re interested. I’d be eager to help with the project as well.
If the file name is the same, browsers will not initiate the request if they have the version of the file in cache AFAIK. This might have a big difference on slower connections since you’ll skip all the DNS lookup and sending headers over the wire.
I personally never thought about such scenario but you’re right — with long living SPAs it’s totally possible to get into this broken state.
One possible solution is to somehow communicate that the newer version is available and force user to reload the page.
It should output linting log to the stdout. Does `eslint` alone works as expected? lint-staged only runs it, so must be something there. Also, if this is an issue with it, please report it on https://github.com/okonet/lint-staged/issues