Задать вопрос
@bellerofonte

Как правильно преобразовать настройки css-loader из строки в объект?

Был файл webpackfile.js с таким содержанием:
// .....
return {
    // ....
    module: {
        rules: [
            // ...
            {
                test: /\.css$/,
                loader: 'style-loader!css-loader?modules&localsConvention=camelCase'
            },
            // .....
        ]
    },
    // ....
};


После обновления зависимостей (webpack, react, babel, loader-ы, etc) webpack потребовал преобразовать строчку loader в массив use.

Я преобразовал в следующее:
return {
    // ...
    module: {
        rules: [
            // ...
            {
                test: /\.css$/,
                use: [{
                    loader: 'style-loader'
                }, {
                    loader: 'css-loader',
                    options: {
                        // ???????
                    }
                }]
            },
            // .....
        ]
    },
    // ....
};


Вопрос: что надо написать в options вместо ????, чтобы получилось эквивалентно строке modules&localsConvention=camelCase? Пробую разные комбинации, но в результате или webpack перестает собирать, или при загрузке страницы вываливается ошибка при обращении к любому классу стиля, например (с точностью до смысла):
import css from './index.css'
css.someClassName // -> Uncaught TypeError: Cannot read properties of undefined
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@bellerofonte Автор вопроса
правильный ответ подобран методом научного тыка:
{ 
  loader: 'css-loader',
  options: {
   modules: {
      mode: 'local',
      exportLocalsConvention: 'camelCase'
    }
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы