【问题标题】:Module '"*.module.scss"' has no exported member in Gatsby + Typescript模块 \'\"*.module.scss\"\' 在 Gatsby + Typescript 中没有导出成员
【发布时间】:2023-02-03 11:15:16
【问题描述】:

首先,不要因为我不做研究而对此投反对票。作为一个尝试学习 React 和 Gatsby 的人,我做了很多研究。我花了 2 天时间搜索 Gatsby 文档、博客和 stackoverflow。

该网站编译正常,但是,Visual Studio 代码随处显示红色文件,并存在以下问题:

Module '"*.module.scss"' has no exported member 'container'.

这是该类的一些示例代码。

样式.module.scss

.container {
    max-width: 1000px;
    width:1000px;
    padding: 0 1.4rem;
    margin: 0 auto;
}

索引.tsx

import * as React from "react"
import { HeadFC, PageProps, graphql } from "gatsby"
import DefaultTemplate from "../templates/default"
import HeroBannerComponent from "../components/HeroBanner"
import {
  container  // <-- error is here
} from "../styles/styles.module.scss"

const IndexPage = () => {
  return (
    <DefaultTemplate pageTitle="Home">
      <HeroBannerComponent></HeroBannerComponent>
      <main>
        <div>
          <div className={container}>

          </div>
          <hr />
          <div className={container}>

          </div>
        </div>
      </main>
    </DefaultTemplate>

  )
}

export default IndexPage

export const Head: HeadFC = () => <title>Home Page</title>

我如何摆脱错误(或忽略它以便我的 UI 中没有错误?

【问题讨论】:

    标签: reactjs typescript gatsby


    【解决方案1】:

    您不能任意命名导出声明,但您也不应该尝试,因为您只是选择退出类型安全。最好自动生成类型:

    https://www.gatsbyjs.com/plugins/gatsby-plugin-scss-typescript/

    你也可以这样做,但你会得到any而不是string(不推荐):

    declare module '*.module.scss'
    

    【讨论】:

    • 我正在使用 Gatsby 5.5.0。该插件与此版本不兼容。我使用了 Gatsby CLI 并在创建选项中选择了 Typescript/SASS。
    • 啊,通过 github.com/mrmckeb/typescript-plugin-css-modules 之类的 ts 插件来做是另一种选择
    猜你喜欢
    • 2019-06-04
    • 2021-12-09
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2021-09-09
    • 2020-11-13
    相关资源
    最近更新 更多