Hur man får modul-CSS att fungera med TypeScript i en Gatsby-applikation?
Jag har en GatsbyJS-applikation och jag försöker lägga till TypeScript på den. Jag har löst de flesta problemen, men jag kan inte få css-modulen att fungera med den.
Jag har denna import i min fil, som fungerar bra:
import styles from "./card.module.css"
Men när jag lade till TypeScript-konfigurationen säger den att Kan inte hitta modulen './card.module.css'.ts(2307)
Jag försökte använda några Gatsby-plugins, men de fungerade inte som förväntat.
Hela koden finns här: github
Svar #1
Jag hade samma problem och efter att ha provat alla olika plugins stötte jag på denna lösning som fungerade för mig.
Skapa en css.d.ts-fil med:
declare module '*.css' {
const content: { [className: string]: string };
export default content;
}
Lägg till dessa rader i din tsconfig.json-fil:
"esModuleInterop": true,
"files": ["./src/typings/css.d.ts"]
Sökvägen för "files" måste matcha där din typdefinitionsfil finns.
https://github.com/thetrevorharmon/gatsby-starter-typescript-sass/issues/1#issuecomment-436748732
Svar #2
Efter att ha provat flera plugins rekommenderar jag att använda gatsby-plugin-dts-css-modules (testad på Gatsby v5).
Installera
npm install gatsby-plugin-dts-css-modules --save-dev
or
yarn add gatsby-plugin-dts-css-modules --dev
Konfiguration
// gatsby-config.ts
const config: GatsbyConfig = {
// ...
plugins: [
// ...
`gatsby-plugin-dts-css-modules`, // add support for CSS modules with TypeScript
]
};
