如何使样式组件与 Astro 一起工作?在 Astro 项目中使用样式组件时,__vite_ssr_import_0__.default.div 不是一个函数

问题描述 投票:0回答:1

19:54:29 [错误] vite_ssr_import_0.default.div 不是函数 堆栈跟踪: 在 C:\Users\prash\OneDrive\Desktop ac-website\src\styles\Header.js:3:42 [...] 在浏览器中查看完整的堆栈跟踪,或使用 --verbose 重新运行。

我已尝试以下步骤来解决该问题:

  • 验证所有依赖项均已正确安装。
  • 确保 astro.config.mjs 文件包含 React 集成。
  • 清除node_modules目录并重新安装依赖项。

尽管做出了这些努力,同样的错误仍然存在。我希望样式组件能够在我的 Astro 项目中正确呈现,但样式组件的导入或使用方式似乎存在问题。

其他人还应该了解哪些其他背景或细节? Node.js 版本:18.3.1 操作系统:Windows`

reactjs vite styled-components astrojs
1个回答
0
投票

错误提到问题出现在项目中名为“tac-website\src\styles\Header.js”的文件中,第 3 行。

但是,根据文件中错误的高度,我猜测您导入样式组件包的方式可能存在问题。 但是,根据此处链接的问题,样式组件的

styled.div
元素似乎存在问题。检查该链接以获取该问题的解决方法。

在开始这些解决方法之前,如果您尝试使用样式组件的 SSR 版本,请确保

  • 您的 Astro 网站已设置为使用 SSR
  • 您已经安装了正确的依赖项:styled-components、@swc/core 和 @swc/plugin-styled-components

因此,一旦您完成了此操作,我就为您提供了一个可能的解决方法:

解决方法:将样式组件添加到 Vite 配置 --> Astro Config

在此解决方案中,您将在 Vite 配置中添加“ssr.noExternals = true”,然后将 Vite 配置添加到 astro.config.mjs 中。您还可以通过将样式组件添加到 vite.plugins 列表来确保将样式组件正确导入到 astro.config.mjs 中。

./astro.config.mjs:

import { defineConfig } from 'astro/config';
import react from '@vitejs/plugin-react-swc';

export default defineConfig({
    // vite config object
  vite: {
    plugins: [
        react({
            plugins: [['@swc/plugin-styled-components', {
                displayName: true,
                fileName: true,
                ssr: true,
        }]]
    })],
    ssr: {
      noExternals: true,
    },
});

然后,在您的文件中,导入样式组件,如下所示:

import { styled } from @swc/plugin-styled-components

如果这不起作用,请尝试不使用“ssr.noExternals”选项。然后,如果仍然不起作用,请提供一些额外的上下文:

  • astro.config.文件
  • tac-website/src/Headers.js 文件
  • package.json 文件
  • App.js(或任何加载主应用程序组件的地方!)
  • 您运行的产生错误的命令(是 npm run build?npm run Preview?)
  • 使用 --verbose 标志运行命令,然后包含该命令的内容。

以后,请提供尽可能多的信息,这将有助于其他用户更好地回答您的问题!

© www.soinside.com 2019 - 2024. All rights reserved.