You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Astro项目中styled-components的__vite_ssr_import_0__.default.div报错

Astro项目中使用styled-components报错:__vite_ssr_import_0__.default.div is not a function

错误详情

19:54:29 [ERROR] vite_ssr_import_0.default.div is not a function
堆栈跟踪:
位于 C:\Users\prash\OneDrive\Desktop\tac-website\src\styles\Header.js:3:42
[...] 请在浏览器中查看完整堆栈跟踪,或使用 --verbose 参数重新运行。

已尝试的排查步骤

  • 验证所有依赖已正确安装
  • 确保astro.config.mjs文件配置了React集成
  • 删除node_modules目录后重新安装依赖

环境信息

  • Node.js版本:18.3.1
  • 操作系统:Windows

问题分析与解决方案

这个错误核心是styled-components的导入或调用方式错误,以下是针对性修复方案:

1. 修正导入语法

检查src/styles/Header.js中的导入语句,确保使用标准默认导入:

// 正确写法
import styled from 'styled-components'

// 需避免的错误写法
import styled from 'styled-components/dist/styled-components.browser'
import * as styled from 'styled-components'

2. 检查组件定义方式

确认你没有错误调用styled对象,比如误写为styled.default.div:

// 正确写法
const HeaderContainer = styled.div`
  padding: 2rem;
  background-color: #f5f5f5;
`

// 错误写法(会触发报错)
const HeaderContainer = styled.default.div`
  // 样式代码
`

3. 配置Vite适配styled-components SSR

在astro.config.mjs中添加Vite配置,确保SSR正常处理styled-components:

import { defineConfig } from 'astro/config';
import react from '@astrojs/react';

export default defineConfig({
  integrations: [react()],
  vite: {
    optimizeDeps: {
      include: ['styled-components']
    },
    ssr: {
      external: ['styled-components']
    }
  }
});

4. 清除缓存并重启服务

执行以下操作清除编译缓存,避免旧文件干扰:

# Windows用户可手动删除node_modules/.cache目录
rm -rf node_modules/.cache
npm run dev -- --verbose

内容的提问来源于stack exchange,提问作者Prashanth Banda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:28:18