Почитайте о map файлах. Все нормальные компрессоры и препроцессоры умею их делать.
Суть такая:
браузер качает сжатый файл.
если открываете профилировщик, он подгружает не сжатый файл (файлы) и показывает все ссылки на исходные файлы.
Ну а чтобы эти файлы на лету появлялись легче всего при разработке настроить какой-нибудь watcher для сборщика (см. ответы выше).
Ну есть еще более сложный вариант, но он лишний.
Файлы отдает не веб-сервер, а движек (он уже сам разбирается с сжатием и сборкой)