Vercel部署遇Type错误:模块无IUser导出成员求助
针对你遇到的Vercel部署报Module '../../interfaces' has no exported member 'IUser'但本地正常的问题,试试下面几个排查方向:
统一Node.js版本
本地和Vercel的Node版本不一致可能导致模块解析差异。在项目根目录创建.nvmrc文件,写入你本地使用的Node版本(比如v18.17.0),Vercel会自动读取这个文件使用对应版本;或者在Vercel控制台的「Settings → General → Node.js Version」手动设置和本地一致的版本。检查文件名大小写
Linux环境(Vercel用的是这个)区分文件名大小写,而Windows/macOS默认不区分。确认你的接口文件命名(比如interfaces.ts)和导入语句里的路径完全一致,没有大小写错误。清除Vercel构建缓存
Vercel可能缓存了旧的构建产物,导致新的接口导出没被识别。进入Vercel项目的「Deployments」页面,找到最近的部署记录,点击「Redeploy」并勾选「Clear build cache」后重新部署。验证相对导入路径的准确性
虽然本地正常,但打包时的路径解析可能和开发环境不同。检查导入IUser的文件里,../../interfaces的相对路径是否真的指向正确的文件;或者尝试配置tsconfig.json的baseUrl为src,改用绝对路径导入(比如import { IUser } from 'interfaces')。检查TypeScript配置的一致性
确认Vercel构建时使用的tsconfig.json和本地一致,比如没有在构建命令里指定不同的配置文件,且tsconfig里的include数组包含了接口文件所在的目录,避免构建时漏掉文件。
内容的提问来源于stack exchange,提问作者Jose Escalona

