css module support using react Rolllup

Viewed 409

I'm working on building out a react package (not app) and have run into my introduction to using rollup which, as I understand it, the equivalent to using webpack for react app development. As I'm moving my code over I've run into a snag where I can't seem to work out the configuration to allow for css/scss module support, e.g.,

import React from "react";
import styles from "./Button.css"; <--- TS2307: Cannot find module './Button.css' or its corresponding type declarations.

my configuration looks like this:

import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import typescript from "@rollup/plugin-typescript";
import postcss from "rollup-plugin-postcss";
import dts from "rollup-plugin-dts";

const packageJson = require("./package.json");

export default [
  {
    input: "./src/index.ts",
    output: [
      {
        file: packageJson.main,
        format: "cjs",
        sourcemap: true
      },
      {
        file: packageJson.module,
        format: "esm",
        sourcemap: true
      }
    ],
    plugins: [
      resolve(),
      postcss({
        extract: false,
        modules: true,
        use: ['sass'],
      }),
      commonjs(),
      typescript({ tsconfig: "./tsconfig.json" })
    ]
  },
  {
    input: "dist/esm/types/index.d.ts",
    output: [{ file: "dist/index.d.ts", format: "esm" }],
    plugins: [dts()],
    external: [/\.(css|less|scss)$/]
  }
];

but I can't get passed the error:

TS2307: Cannot find module './Button.css' or its corresponding type declarations.

my web research has found some attempts at solving this, but nothing has worked. I can drop the css directly on the component:

import React from "react";
import "./Button.css";

But the assignment doesn't work. Any ideas on solution?

0 Answers
Related