• Минифицировать названия классов используя css-module?

    Aetae
    @Aetae
    Тлен
    Магии не существует, друже.
    Что на самом деле делает webpack лоадер? Он берёт на вход какой-то файл, что-то с ним делает и выдаёт js-модуль(в виде строки) с результатом + какие-то побочные действия.

    Соответственно css-loader для модулей делает (утрировано) 2 вещи:
    1. Из входного css генерирует js-модуль с объектом вида
    { [ключ - настоящее имя класса]: [значение - минифицированное] }
    и отдаёт результат в js.
    2. Выполняет замену в css настоящих имён на минифицированные и сохраняет отдельно.

    Чтобы получить то, что ты хочешь - надо добавить некий loader для .js файлов который удалит все импорты css-модулей из кода(но сохраняя результаты) и заменит все обращения вида $style.className на значения из этих модулей.
    Погугли, что-то такое кто-то должен был запилить.)
    Ну и в любом случае, чтобы это работало нужна гарантия, что никакой динамики у тебя в коде работы с css модулями нет, т.е. что-то такое: $style[somevar + '__bold'], гарантировано сломает любую такую штуку.
    Ответ написан
    Комментировать