SvelteKit项目执行vite preview时出现模块找不到错误
解决SvelteKit执行
npm run preview时manifest.js缺失的问题 问题描述
执行npm run preview(即vite preview)时触发模块找不到错误,提示无法找到.svelte-kit/output/server/manifest.js,但实际目录中只有manifest-full.js和vite-manifest.json;npm run dev可正常运行,手动重命名manifest-full.js为manifest.js或修改node_modules中预览脚本的引用路径能临时解决,但重新构建后问题复现。
解决方案
1. 对齐SvelteKit与Vite版本
这是最常见的原因:@sveltejs/kit和vite版本不兼容,导致构建产物的manifest命名逻辑不一致。
- 查看
package.json中的依赖版本,确保两者版本匹配(例如SvelteKit 1.x对应Vite 4.x,SvelteKit 2.x对应Vite 5.x) - 执行命令更新到兼容的最新版本:
npm update @sveltejs/kit vite - 重新执行
npm run build后再启动预览。
2. 检查并重置SvelteKit构建配置
如果自定义了svelte.config.js中的kit.output相关配置,可能导致manifest文件命名异常:
- 暂时注释或恢复
kit.output的自定义设置,执行npm run build后尝试预览。 - 确认配置中是否有修改manifest生成规则的参数,调整为默认值后重试。
3. 清理缓存与产物后重新构建
缓存或残留的构建产物可能导致异常,执行以下命令彻底清理后重新构建:
rm -rf .svelte-kit node_modules package-lock.json npm install npm run build npm run preview
4. 临时应急方案(不推荐长期使用)
如果上述方法无法快速解决,可通过脚本自动处理文件重命名,避免手动操作:
修改package.json中的preview脚本:
"scripts": { "preview": "cp .svelte-kit/output/server/manifest-full.js .svelte-kit/output/server/manifest.js && vite preview" }
执行npm run preview时会自动生成所需的manifest.js。
注意事项
不要直接修改node_modules中的文件——该修改会在后续执行npm install或更新依赖时被覆盖,还可能引入其他兼容性问题,仅作为临时测试方案使用。
内容的提问来源于stack exchange,提问作者Iisak_789
相关产品推荐
相关产品推荐

