Files
gsap-carousel/config/build/loaders/buildCssLoader.ts
Ilia Mashkov dc789c68cd Обновление конфига css-loader для поддержки .css и дефолтных импортов
- Обновлен regex для включения обработки .css файлов (необходимо для стилей Swiper)
- Отключен namedExport в опциях css-loader для исправления дефолтных импортов из SCSS модулей
2025-11-19 18:51:01 +03:00

45 lines
1.7 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import MiniCssExtractPlugin from 'mini-css-extract-plugin'
/**
* Конфигурация CSS/SCSS loader для webpack
*
* Обрабатывает файлы .css, .scss и .sass с поддержкой CSS модулей.
* В режиме разработки использует style-loader для инъекции стилей в DOM.
* В режиме production использует MiniCssExtractPlugin для извлечения CSS в отдельные файлы.
*
* CSS модули автоматически включаются для файлов с паттерном *.module.*
*
* @param {boolean} isDev - Флаг режима разработки
* @returns {Object} Конфигурация css-loader с поддержкой SCSS и CSS модулей
*
* @example
* // Для файла Button.module.scss будут применены CSS модули
* // Для файла global.scss CSS модули не применяются
*/
export const buildCssLoader = (isDev: boolean) => {
const cssLoader = {
test: /\.(s[ac]ss|css)$/i,
use: [
// Создает <style> теги из JS строк (dev) или извлекает в файлы (prod)
isDev ? 'style-loader' : MiniCssExtractPlugin.loader,
// Преобразует CSS в CommonJS модули
{
loader: 'css-loader',
options: {
modules: {
auto: /\.module\..*$/,
namedExport: false,
localIdentName: isDev
? '[path][name]__[local]--[hash:base64:5]'
: '[hash:base64:8]',
},
},
},
// Компилирует Sass в CSS
'sass-loader',
],
}
return cssLoader
}