Магии не существует, друже.
Что на самом деле делает webpack лоадер? Он берёт на вход какой-то файл, что-то с ним делает и выдаёт js-модуль(в виде строки) с результатом + какие-то побочные действия.
Соответственно css-loader для модулей делает (утрировано) 2 вещи:
1. Из входного css генерирует js-модуль с объектом вида
{ [ключ - настоящее имя класса]: [значение - минифицированное] }
и отдаёт результат в js.
2. Выполняет замену в css настоящих имён на минифицированные и сохраняет отдельно.
Чтобы получить то, что ты хочешь - надо добавить некий loader для
.js файлов который удалит все импорты css-модулей из кода(но сохраняя результаты) и заменит все обращения вида
$style.className
на значения из этих модулей.
Погугли, что-то такое кто-то должен был запилить.)
Ну и в любом случае, чтобы это работало нужна гарантия, что никакой динамики у тебя в коде работы с css модулями нет, т.е. что-то такое:
$style[somevar + '__bold']
, гарантировано сломает любую такую штуку.