Vite预构建时报错“Missing package”,但依赖明明已安装怎么办?
最近在用Vite开发项目,每次启动时预构建依赖都会卡住,报错说“Missing package: ‘@vue/reactivity’ required by ‘my-vue-app’”。但package.json里明明已经安装了vue@3.2.42,node_modules也有对应文件。我尝试过删除node_modules和lock文件重装,还是同样的问题。
我的vite.config.js配置是这样的:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
plugins: [vue()],
optimizeDeps: {
include: ['@vue/reactivity']
}
});
如果注释掉optimizeDeps配置就能正常启动,但这样会不会影响性能?有没有办法解决预构建阶段的模块识别问题?
optimizeDeps.include的配置,Vite 的预构建对路径要求很严格,改成完整的包路径试试。把
include改成这样:如果还不行,可能是依赖版本冲突,运行
npm ls @vue/reactivity查看依赖树,确保没有重复或不匹配的版本。如果还是不行,检查下 node_modules/vue/package.json 的 exports 字段,确保 @vue/reactivity 路径正确暴露。通常 Vite 不需要手动指定 optimizeDeps,删掉这个配置也能正常工作,性能影响可以忽略。