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

Vite React项目本地预览正常,部署至Netlify等平台失败求助

问题解决方案

这个错误是因为Chakra UI新版本引入了React 13的"use client"指令,但Vite或部署平台的打包流程没有正确处理node_modules中的这类指令导致的,以下是具体解决步骤:

  • 修改Vite配置,让打包工具正确识别Chakra UI的客户端指令
    在vite.config.ts中添加优化依赖的配置,指定Chakra UI相关包的处理规则:

    import { defineConfig } from 'vite'
    import react from '@vitejs/plugin-react'
    
    export default defineConfig({
      plugins: [react()],
      optimizeDeps: {
        include: ['@chakra-ui/react', '@chakra-ui/system', '@chakra-ui/button', '@chakra-ui/icons'],
        esbuildOptions: {
          loader: {
            '.js': 'jsx',
            '.mjs': 'jsx',
          },
        },
      },
    })
    
  • 在应用入口文件标记客户端上下文
    在main.tsx(或你的入口文件)顶部添加"use client",确保整个应用的客户端环境被正确识别:

    'use client'
    
    import React from 'react'
    import ReactDOM from 'react-dom/client'
    import { ChakraProvider } from '@chakra-ui/react'
    import App from './App'
    
    ReactDOM.createRoot(document.getElementById('root')!).render(
      <React.StrictMode>
        <ChakraProvider>
          <App />
        </ChakraProvider>
      </React.StrictMode>,
    )
    
  • 清理依赖缓存并重新安装
    执行以下命令清除旧依赖缓存,避免残留问题:

    rm -rf node_modules package-lock.json
    npm install
    
  • 确认部署平台的构建命令
    检查package.json中的build命令是否正确,确保部署平台执行的是标准Vite构建流程:

    {
      "scripts": {
        "build": "tsc && vite build",
        "preview": "vite preview"
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:28:15