https://developers.google.com/web/fundamentals/per...
Т.е. для index.html вообще запрещаем кеширование, а js файлы кешируем (можно навсегда).
При сборке к js/css файлу добавляем hash, который будет меняться при изменении файла. Таким образом index.html будет всегда забираться. Если там будет ссылка на новую сборку, то новые скрипты/стили скачаются, иначе возьмутся из кэша браузера.