ReactTS+Vite+SWC项目本地启动报错:JSON文件意外结束
解决方案
1. 排查上级目录的tsconfig.json文件
错误信息明确指向../tsconfig.json:1:0,说明Vite在加载配置时读取了项目父目录中的tsconfig.json,而该文件是空文件或JSON格式损坏:
- 进入项目所在的父目录(比如
/home/n.n/Desktop/),检查是否存在tsconfig.json - 若文件为空或格式错误,直接删除该文件;若需要保留,则修复其JSON语法
2. 验证项目内TS配置的完整性
执行以下命令,检查当前项目的TS配置是否能正常解析:
npx tsc --noEmit
如果输出语法错误提示,对应修正tsconfig.json、tsconfig.paths.json等文件的格式问题(比如遗漏逗号、引号不匹配)
3. 强制Vite仅使用项目内的TS配置
如果上级目录的tsconfig.json需要保留,可在Vite配置中明确指定项目内的TS配置路径,避免向上查找:
修改vite.config.ts:
import react from '@vitejs/plugin-react-swc'; import { resolve } from 'node:path'; import { defineConfig } from 'vite'; export default defineConfig({ base: '/', plugins: [react({ // 为SWC插件指定项目内的tsconfig tsconfig: resolve(__dirname, 'tsconfig.json') })], resolve: { alias: { '~': resolve(__dirname, './src') } }, server: { port: 3000, watch: { ignored: ['**/coverage/**'] } }, // 为ESBuild指定项目内的tsconfig optimizeDeps: { esbuildOptions: { tsconfig: resolve(__dirname, 'tsconfig.json') } } });
4. 清除ESBuild缓存
ESBuild可能缓存了损坏的配置,执行以下命令清除缓存后重新启动服务:
rm -rf node_modules/.cache npm run dev
额外排查项
- 检查文件权限:确保项目内所有配置文件可读,执行
chmod -R 644 ./tsconfig*.json - 尝试升级Node版本:虽然Node 18.12.1兼容Vite 5,但可切换到Node 20.x LTS版本测试是否解决问题
内容的提问来源于stack exchange,提问作者Igor Bežanović
相关产品推荐
相关产品推荐

