Fiber安装失败提示“空间不足”主因是npm缓存、构建残留(build/target/dist)、巨型二进制依赖及Windows临时文件未清理,需针对性清除而非仅删node_modules。

直接删 node_modules 和重装不是解法——Fiber 安装失败时提示“空间不足”,90% 情况下是 npm/yarn 缓存 + 临时构建产物 + 未清理的旧依赖树共同占满磁盘,而非项目目录本身太大。
npm cache 占用远超预期,必须清
Fiber(尤其是 v2+)依赖大量 Rust 工具链和预编译二进制,npm 默认会把所有下载包缓存在全局 ~/.npm,长期不清理可达 8–15GB。它不会随 rm -rf node_modules 消失,且安装时仍会反复读写该路径。
- 执行
npm cache clean --force强制清空(注意:不是npm cache verify,后者只校验不删除) - 确认清理效果:
npm config get cache查出路径后,手动du -sh $(npm config get cache)验证是否归零 - 若使用 pnpm,对应命令是
pnpm store prune;yarn v1 是yarn cache clean,yarn v4 请改用yarn cache clear
build 目录和 target 文件夹残留严重
Fiber 的构建过程会在项目根目录生成 build/、target/(Rust 编译输出)、dist/,这些目录一旦中断或失败,常留有 gigabyte 级中间文件,且 npm install 不会自动清理它们。
- 先检查是否存在:
ls -la | grep -E "^(build|target|dist)$" - 安全删除(确保没在运行 dev server):
rm -rf build target dist - 特别注意:
target/可能藏在子模块里,如packages/*/target,建议用find . -name "target" -type d -prune -exec rm -rf {} +
node_modules 里有巨型可执行文件未被识别
某些 Fiber 依赖(如 @fastify/static 或底层 esbuild)会把数 MB 的二进制文件(esbuild.exe、lightningcss)打进 node_modules/.bin/ 或 node_modules/esbuild/bin/。这些文件在 du -sh node_modules 中被统计,但普通清理脚本常忽略它们。
- 快速定位最大项:
du -sh node_modules/** | sort -hr | head -n 10 - 重点检查:
node_modules/esbuild、node_modules/lightningcss、node_modules/@swc/core—— 它们单个就可能占 150–300MB - 若确定不用本地编译(比如只跑预构建镜像),可删掉整个
node_modules/esbuild后用npm install --no-bin-links跳过二进制链接
Windows 下 %TEMP% 被 Node.js 构建锁死
在 Windows 上,Node.js 编译阶段(尤其是 Rust 绑定)会高频写入 %TEMP%,而杀毒软件或权限策略可能导致文件残留+句柄未释放,使磁盘报告“已用空间”虚高,安装程序误判。
- 手动清空:
%TEMP%路径下搜索*fiber*、*rust*、*build*关键词,删掉匹配文件夹 - 关闭杀软实时防护再重试(特别是 Windows Defender 的“基于信誉的保护”)
- 临时换 TEMP 路径:
set TEMP=D:\temp & set TMP=D:\temp & npm install(需提前创建 D:\temp)
最易被忽略的是:Fiber 的 create-fiber-app 脚手架在失败后,会在当前目录留下半成品 node_modules 和 package-lock.json,下次再跑会复用旧 lock 并尝试复原损坏状态——此时必须 rm -rf node_modules package-lock.json 彻底重来,不能只删 modules。


















