← [ BACK_TO_NOTES ]

无法找到-rollup-rollup-win32-x64-msvc

Rollup 平台特定二进制文件缺失问题的排查与解决

#nodejs #howto #evergreen

无法找到 @rollup/rollup-win32-x64-msvc

[!info] related notes

现象

构建或开发时报错:

Error: Cannot find module @rollup/rollup-win32-x64-msvc

或类似的平台特定 Rollup 二进制缺失错误。

原因

Rollup 从 v4 开始使用平台特定的 optional dependencies 来分发原生二进制文件(替代原来的 @rollup/wasm-node 回退方案)。常见的触发原因:

  1. postinstall 脚本失败:安装时平台包的 postinstall 脚本执行失败,但主包安装成功(不会报错)
  2. npm/pnpm 缓存损坏:缓存中存在损坏的包文件
  3. registry 问题:私有 registry 或镜像源未同步平台特定包
  4. 跨平台安装:在一台机器上 npm install,把 node_modules 拷贝到另一平台使用
  5. lockfile 过旧:lockfile 中未包含新的 optional dependency 条目

解决步骤

方法一:删除 node_modules 重新安装(最常用)

# Windows PowerShell
Remove-Item -Path "node_modules" -Recurse -Force -ErrorAction SilentlyContinue
pnpm install
# 或
npm install
# Linux/macOS
rm -rf node_modules
pnpm install

方法二:清理缓存后重装

# npm
npm cache clean --force
rm -rf node_modules
npm install

# pnpm
pnpm store prune
rm -rf node_modules
pnpm install

方法三:强制重新构建

# npm
npm rebuild rollup

# pnpm
pnpm rebuild rollup

方法四:确认 lockfile 完整

# 删除 lockfile 重新生成(最后手段,可能引起版本变化)
rm pnpm-lock.yaml  # 或 package-lock.json
pnpm install

预防措施

  1. 不要跨平台拷贝 node_modules:始终在目标平台上执行 install
  2. 使用一致的包管理器版本:团队约定 pnpm 版本,避免 lockfile 格式差异
  3. CI 中缓存 node_modules:使用 CI 平台提供的缓存机制而非手动缓存
  4. 定期更新 lockfile:过旧的 lockfile 可能缺少新平台的 optional dependency

信息参考

创建于 2025/1/1 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本