Vite-React-Ts-SWC部署Vercel报错:无法找到模块或类型声明
解决Vite-React-Ts-SWC项目Vercel部署TS2307模块找不到问题
1. 排查文件名大小写问题
Vercel部署环境基于Linux,文件名严格区分大小写,但本地Windows/macOS默认不区分。如果本地导入路径写的是./pages/Home,但实际文件是home.tsx,本地能正常运行,但Vercel构建会直接报错。必须确保导入路径的文件名和实际文件的大小写完全匹配。
2. 同步TS配置与Vite别名
修正tsconfig.json
确保baseUrl、paths配置覆盖所有需要的路径,同时include包含所有源码文件:
{ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["src/*"], "./pages/*": ["src/pages/*"] }, "moduleResolution": "bundler", "allowImportingTsExtensions": true, "resolveJsonModule": true, "noEmit": true }, "include": ["src/**/*", "vite.config.ts"], "references": [{ "path": "./tsconfig.node.json" }] }
同步vite.config.ts别名
Vite的resolve.alias必须和TS的paths完全对应,否则本地解析正常但构建时失效:
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react-swc' import path from 'path' export default defineConfig({ plugins: [react()], resolve: { alias: { '@': path.resolve(__dirname, './src'), './pages/': path.resolve(__dirname, './src/pages/') }, extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'] } })
3. 检查Vercel构建配置
- 进入Vercel项目的构建设置,确认构建命令为项目实际的构建脚本(比如
npm run build),输出目录为dist(Vite默认输出目录)。 - 如果用pnpm或yarn,确保Vercel安装了对应包管理器,或者在
package.json里明确指定脚本。
4. 本地预构建+清理缓存
- 先在本地执行
npm run build,如果能复现问题,说明本地配置有隐藏错误,先在本地修复。 - Vercel部署时,选择"Clear Cache & Redeploy",避免旧缓存导致配置不生效。
内容的提问来源于stack exchange,提问作者jseen
相关产品推荐
相关产品推荐

