Vite 项目报错 @rollup/rollup-win32-x64-msvc 的解决与版本锁定

报错现场

早上来一跑项目,终端直接甩脸:

text 复制代码
Error: Cannot find module '@rollup/rollup-win32-x64-msvc'

看路径是 Rollup 在加载对应平台的 native 二进制包时找不到文件。奇怪的是,昨天还能跑,今天什么都没改就挂了。

根因排查

这类问题通常不是代码问题,而是依赖版本被"偷袭"了。

Vite 底层依赖 Rollup,而 Rollup 在 4.x 之后对平台二进制包做了比较大的调整。如果 registry 或者 lock 文件出现版本漂移,就可能拉到一个和当前环境不匹配的 @rollup/rollup-win32-x64-msvc 版本,导致启动直接崩。

说人话就是:Vite 把 Rollup 的版本带飞了,但新的 Rollup 和你的运行环境没对齐。

解决方案

在 package.json 里把 Rollup 版本锁死,强制所有依赖都使用同一个版本:

json 复制代码
{
  "resolutions": {
    "rollup": "4.9.6"
  }
}

如果你用的是 npm,改成 overrides:

json 复制代码
{
  "overrides": {
    "rollup": "4.9.6"
  }
}

pnpm 用户则可以用:

json 复制代码
{
  "pnpm": {
    "overrides": {
      "rollup": "4.9.6"
    }
  }
}

然后重新安装依赖并启动:

bash 复制代码
# yarn
yarn install
yarn dev

# npm
npm install
npm run dev

# pnpm
pnpm install
pnpm dev

验证是否生效

安装完后,确认一下实际安装的 Rollup 版本:

bash 复制代码
npm ls rollup
# 或
yarn why rollup

如果输出是 4.9.6,再次启动项目,报错应该就消失了。

小结

这类平台二进制包找不到的错误,本质都是版本不一致闹的。与其每次被 Rollup 的版本更新背刺,不如在 package.json 里把版本锁死,让依赖树稳定下来。

相关推荐
向北丶11 天前
vite项目中配置alias别名
前端·vite
PedroQue9912 天前
修复 .uvue 页面路径残留问题
前端·vite
梦曦i12 天前
修复 .uvue 页面路径残留问题
前端·vite
cindershade16 天前
首屏在替谁付费:重做 Vite 产物治理的责任边界
vite
做前端的娜娜子17 天前
施工蓝图:vite.config.js —— 项目的指挥中心
前端·react native·vite
D_jing2018 天前
【踩坑解决】pnpm+Vite引入@koi/core报错spark-md5找不到模块(幽灵依赖深度解析)
pnpm·vite·幽灵依赖·前端踩坑
Flynt18 天前
pnpm 12 换上了 Rust 内核,我拿项目实测了一轮构建速度
rust·vite·前端工程化
xiaoyan201519 天前
2026最新款Electron41+React19+AntDesign电脑端后台管理系统Exe
react.js·electron·vite
梨想橙汁19 天前
Vite 优化、踩坑汇总 + Webpack 迁移 Vite 实战
前端·webpack·vite
猫不易20 天前
Webpack 与 Vite:从 Loader / Plugin 到 Rolldown 统一引擎
前端·vite