SvelteKit构建报错:无法检测支持的生产环境,开发/预览模式正常
问题解决步骤
一、解决'MONGO_KEY'未导出的错误
- 确认项目根目录存在
.env(本地开发用)和.env.production(生产构建用)文件,文件内正确定义:MONGO_KEY=你的MongoDB连接字符串 - 在
src/hooks.server.js中确保导入方式正确,必须使用解构语法:import { MONGO_KEY } from '$env/static/private'; - Vercel部署时,务必在Vercel控制台的「环境变量」面板添加
MONGO_KEY变量,本地.env文件不会被上传到服务器 - 检查变量名拼写,确保大小写完全一致
二、解决「无法检测支持的生产环境」构建错误
你的项目依赖的@sveltejs/kit是测试版(next),且adapter-auto版本过旧,和新版mongoose存在兼容性问题,按以下步骤修复:
- 升级核心依赖到稳定版:
npm install @sveltejs/kit@latest @sveltejs/adapter-auto@latest - 若升级后仍检测失败,直接使用Vercel专属适配器替代
adapter-auto:- 安装适配器:
npm install @sveltejs/adapter-vercel@latest - 修改
svelte.config.js:import adapter from '@sveltejs/adapter-vercel'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter(), alias: { $routes: './src/routes', '$routes/*': './src/routes/*' } } }; export default config;
- 安装适配器:
- 添加Node版本要求到
package.json(mongoose 8.x需要Node 18+):
在package.json中新增:"engines": { "node": ">=18.0.0" } - 清理依赖重新安装:
rm -rf node_modules package-lock.json npm install - 重新执行构建命令:
npm run build
内容的提问来源于stack exchange,提问作者Alexis
相关产品推荐
相关产品推荐

