Vite预构建时报错“Missing package”,但依赖明明已安装怎么办?

♫胜捷 阅读 24

最近在用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配置就能正常启动,但这样会不会影响性能?有没有办法解决预构建阶段的模块识别问题?

我来解答 赞 2 收藏
二维码
手机扫码查看
2 条解答
宝娥酱~
检查一下 optimizeDeps.include 的配置,Vite 的预构建对路径要求很严格,改成完整的包路径试试。
include 改成这样:

optimizeDeps: {
include: ['vue', '@vue/reactivity']
}


如果还不行,可能是依赖版本冲突,运行 npm ls @vue/reactivity 查看依赖树,确保没有重复或不匹配的版本。
点赞 1
2026-02-17 10:01
世博酱~
问题在于 Vite 的预构建机制对路径解析有要求,optimizeDeps 配置里的包名需要和实际依赖的子模块路径完全匹配。改成这样试试:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

export default defineConfig({
plugins: [vue()],
optimizeDeps: {
include: ['vue']
}
});


如果还是不行,检查下 node_modules/vue/package.json 的 exports 字段,确保 @vue/reactivity 路径正确暴露。通常 Vite 不需要手动指定 optimizeDeps,删掉这个配置也能正常工作,性能影响可以忽略。
点赞
2026-02-16 01:08