alaskafx
@alaskafx
Не .do Frontend

Cannot read properties of undefined (reading 'button')?

Делаю свою ui библиотеку для локального использования между проектами.
Решил лить свой проект через gitlab, все сделал, однако, при попытке использовать вылазит подобная ошибка:
Cannot read properties of undefined (reading 'button')


Использую: webpack, ts, react, css modules, class-variance-authority.

Ошибка кидает именно на строку, где cva пытается достать класс .button.
Код выглядит так:

Button.tsx:
import styles from "./Button.module.css";
import { cva, type VariantProps } from "class-variance-authority";
import React, { type ButtonHTMLAttributes } from "react";

const button = cva(styles.button, {
	variants: {
		intent: {
			default: styles.buttonDefault,
			accent: styles.buttonAccent,
			stroke: styles.buttonStroke,
			disabled: styles.buttonDisabled,
			withoutBg: styles.buttonWithoutBg,
		},

	},
	defaultVariants: {
		intent: "default",
	},
});
 
export interface ButtonProps
		extends ButtonHTMLAttributes<HTMLButtonElement>,
				VariantProps<typeof button> {}

export const Button = ({ className, intent, ...props }: ButtonProps) => {
	return <button className={button({ intent, className })} {...props} />;
};


webpack.config.js:

const path = require("path");

module.exports = {
  mode: "production",
  entry: "./src/index.ts",
  output: {
    filename: "index.js",
    path: path.resolve(__dirname, "dist"),
    clean: true,
    libraryTarget: "umd",
  },
  resolve: {
    extensions: [".ts", ".tsx"],
  },
  externals: {
    react: "react",
  },
  module: {
    rules: [
      {
        test: /\.(ts|tsx)?$/,
        use: ["ts-loader"],
        exclude: /node_modules/,
      },
      {
        test: /\.css$/i,
        use: [
          {
            loader: "style-loader",
          },
          { loader: "css-modules-typescript-loader" },
          { 
            loader: "css-loader", 
            options: { modules: true } 
        },
        ],
      },
    ],
  },
};
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы