Ошибка импорта модулей стилей

Подскажите, разворачивая проект столкнулся с ошибкой - при импорте модулей scss они приходят как undefined

import React, { useState } from "react";
import classes from "./Counter.module.scss";

const Counter = () => {
  const [count, setCount] = useState(0);

  const increment = () => {
    setCount(count + 1);
  };
  console.log(classes); //undefined
  return (
    <div className={classes.btn}>
      <h1>{count}</h1>
      <button onClick={increment}>increment</button>
    </div>
  );
};

export default Counter;

global.d.ts

declare module "*.scss" {
  interface IClassNames {
    [className: string]: string;
  }
  const classnames: IClassNames;
  export = classnames;
}

loaders

export function buildLoaders({ isDev }: BuildOptions): webpack.RuleSetRule[] {
  const cssLoader = {
    test: /\.s[ac]ss$/i,
    use: [
      isDev ? "style-loader" : MiniCssExtractPlugin.loader,
      {
        loader: "css-loader",
        options: {
          modules: {
            auto: (resPath: string) => Boolean(resPath.includes(".module.")),
            localIdentName: isDev ? "[path][name]__[local]" : "[hash:base64:8]",
          },
        },
      },
      "sass-loader",
    ],
  };

  const typescriptLoader = {
    test: /\.tsx?$/,
    use: "ts-loader",
    exclude: /node_modules/,
  };

  return [typescriptLoader, cssLoader];
}


Ответы (1 шт):

Автор решения: d184h

По умолчанию Node.js позволяет загружать модули CommonJS import sass from 'sass' из модулей ECMAScript с использованием синтаксиса . Сейчас это устарело; Вместо этого пользователям ESM следует использовать import * as sass from 'sass'.

Исторически Dart Sass был доступен только как модуль CommonJS. Это означало, что любой, кто использовал его из проекта, в котором использовалась встроенная поддержка модуля ECMAScript Node.js, мог загрузить его, как если бы он обеспечивал экспорт по умолчанию:

import sass from 'sass';

Это никогда не планировалось командой Sass и не соответствовало объявлениям типов, предоставленным в пакете, но это работало . Мы решили удалить эту поддержку в Dart Sass 2.0.0 и потребовать, чтобы пользователи модуля ECMAScript использовали только именованные экспорты пакета:

import * as sass from 'sass';

https://sass-lang.com/documentation/breaking-changes/default-export/

→ Ссылка