Closed philippevezina closed 3 weeks ago
Hi Philippe, thanks for reporting!
Fixing this will likely require grouping files by modified time using a certain range (maybe 5 minutes is a reasonable default).
This is a duplicate of #404, right?
Fix proposed in #477 which mirrors the behaviour of vite_ruby before a recent tangentially related bugfix, as well as Webpacker.
Fix proposed in #477 which mirrors the behaviour of vite_ruby before a recent tangentially related bugfix, as well as Webpacker.
This PR won't fix the issue described here. The issue still remains that Vite Ruby relies on common mtime
s on files to determine the set of files belonging to a certain version. That said, when trying to keep 2 versions of the assets, the returned files may all belong to only a single build rather than 2 because the mtime
could be 1 second off for some files.
Fix proposed in #477 which mirrors the behaviour of vite_ruby before a recent tangentially related bugfix, as well as Webpacker.
This PR won't fix the issue described here. The issue still remains that Vite Ruby relies on common
mtime
s on files to determine the set of files belonging to a certain version. That said, when trying to keep 2 versions of the assets, the returned files may all belong to only a single build rather than 2 because themtime
could be 1 second off for some files.
Ok, but it will fix guaranteeing you retain at least the most recent version.
Description 📖
vite_ruby
uses themtime
as a reference to detect different versions of the app: https://github.com/ElMassimo/vite_ruby/blob/main/vite_ruby/lib/vite_ruby/commands.rb#L148 That being said, a single Vite build can generate files with more than onemtime
. For example,vite-plugin-rails
usesrollup-plugin-gzip
at the end of the build which will write many files with differentmtime
s.This causes files to delete unexpectedly when running
bin/vite clean
. It's possible this bug is hard to reproduce with a small project as all written files may end up having the samemtime
.Reproduction 🐞
Vite Ruby Info
- Run `bin/rake vite:build` on a big project with no currently built assets. - Run `bin/rake vite:clean[1,0]` Result: files will be deleted while there is only a single version of the built assets.